@bogatron ma rację, można użyć , warto zauważyć, że można to zrobić natywnie w pand:
df1 = df.where((pd.notnull(df)), None)
Uwaga: zmienia to typ Dtype dla wszystkich kolumn na object
.
Przykład:
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
Uwaga: to, czego nie może zrobić przekształcenie DataFrames dtype
aby zezwolić na wszystkie rodzaje typów danych, używając astype
, a następnie metoda DataFrame fillna
:
df1 = df.astype(object).replace(np.nan, 'None')
Niestety ani to, ani używanie replace
, działa z, zobacz this (closed) issue.
Tak na marginesie, to warto zauważyć, że w większości przypadków użycia nie trzeba zastąpić NaN z None, patrz na to pytanie o the difference between NaN and None in pandas.
Jednak w tym konkretnym przypadku wydaje się, że tak (przynajmniej w chwili udzielenia tej odpowiedzi).
Nie ma ustawienia można zmienić w Pandy, aby powrócić do '' None' NULL' zamiast ' nan'? –