@bogatron nói đúng, bạn có thể sử dụng where, cần lưu ý rằng bạn có thể thực hiện điều này một cách tự nhiên ở gấu trúc:
df1 = df.where(pd.notnull(df), None)
Lưu ý: điều này thay đổi loại của tất cả các cột thành object.
Thí dụ:
In [1]: df = pd.DataFrame([1, np.nan])
In [2]: df
Out[2]:
0
0 1
1 NaN
In [3]: df1 = df.where(pd.notnull(df), None)
In [4]: df1
Out[4]:
0
0 1
1 None
Lưu ý: những gì bạn không thể làm là viết lại DataFrame dtypeđể cho phép tất cả các loại kiểu dữ liệu, sử dụng astypevà sau đó là fillnaphương thức DataFrame :
df1 = df.astype(object).replace(np.nan, 'None')
Thật không may, không phải điều này, cũng không sử dụng replace, hoạt động với Nonexem vấn đề này (đã đóng) .
Ngoài ra, cần lưu ý rằng đối với hầu hết các trường hợp sử dụng, bạn không cần thay thế NaN bằng Không, hãy xem câu hỏi này về sự khác biệt giữa NaN và Không có ở gấu trúc .
Tuy nhiên, trong trường hợp cụ thể này có vẻ như bạn làm (ít nhất là tại thời điểm câu trả lời này).
NonechoNULLthay vìnan?