@bogatron ma rację, możesz użyć where
, warto zauważyć, że możesz to zrobić natywnie w pandach:
df1 = df.where(pd.notnull(df), None)
Uwaga: spowoduje to zmianę typu dtype 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: czego nie można zrobić przekształcenia DataFrames, dtype
aby zezwolić na wszystkie typy danych, używając astype
, a następnie fillna
metody DataFrame :
df1 = df.astype(object).replace(np.nan, 'None')
Niestety ani to, ani przy użyciu replace
, współpracuje z None
zobaczyć tę kwestię (zamknięte) .
Na marginesie, warto zauważyć, że w większości przypadków użycia nie trzeba zastępować NaN na None, zobacz to pytanie o różnicę między NaN i None w pandach .
Jednak w tym konkretnym przypadku wydaje się, że tak (przynajmniej w momencie tej odpowiedzi).
None
doNULL
zamiastnan
?