Có phương pháp nào để thay thế các giá trị bằng None
Pandas trong Python không?
Bạn có thể sử dụng df.replace('pre', 'post')
và có thể thay thế một giá trị bằng một giá trị khác, nhưng điều này không thể thực hiện được nếu bạn muốn thay thế bằng None
giá trị mà nếu bạn cố gắng, bạn sẽ nhận được một kết quả lạ.
Vì vậy, đây là một ví dụ:
df = DataFrame(['-',3,2,5,1,-5,-1,'-',9])
df.replace('-', 0)
trả về kết quả thành công.
Nhưng,
df.replace('-', None)
trả về một kết quả sau:
0
0 - // this isn't replaced
1 3
2 2
3 5
4 1
5 -5
6 -1
7 -1 // this is changed to `-1`...
8 9
Tại sao lại trả về một kết quả kỳ lạ như vậy?
Vì tôi muốn đổ khung dữ liệu này vào cơ sở dữ liệu MySQL, tôi không thể đặt NaN
các giá trị vào bất kỳ phần tử nào trong khung dữ liệu của mình và thay vào đó tôi muốn đặt None
. Chắc chắn, trước tiên bạn có thể thay đổi '-'
thành NaN
và sau đó chuyển đổi NaN
thành None
, nhưng tôi muốn biết tại sao khung dữ liệu hoạt động theo cách khủng khiếp như vậy.
Đã thử nghiệm trên pandas 0.12.0 dev trên Python 2.7 và OS X 10.8. Python là phiên bản được cài đặt sẵn trên OS X và tôi đã cài đặt gấu trúc bằng cách sử dụng tập lệnh SciPy Superpack để biết thông tin của bạn.
write_frame
phân tích cú phápNaN
s thànhnone
s?