@bogatron a raison, vous pouvez utiliser where
, il convient de noter que vous pouvez le faire nativement dans les pandas:
df1 = df.where(pd.notnull(df), None)
Remarque: cela change le dtype de toutes les colonnes en object
.
Exemple:
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
Remarque: ce que vous ne pouvez pas refondre les DataFrames dtype
pour autoriser tous les types de types de données, en utilisant astype
, puis la fillna
méthode DataFrame :
df1 = df.astype(object).replace(np.nan, 'None')
Malheureusement, ni cela, ni l'utilisation replace
, ne fonctionne avec None
voir ce problème (fermé) .
En passant, il convient de noter que pour la plupart des cas d'utilisation, vous n'avez pas besoin de remplacer NaN par None, voir cette question sur la différence entre NaN et None dans les pandas .
Cependant, dans ce cas précis, il semble que vous le fassiez (du moins au moment de cette réponse).
None
à laNULL
placenan
?