O @bogatron está certo, você pode usar where
, vale a pena notar que você pode fazer isso nativamente nos pandas:
df1 = df.where(pd.notnull(df), None)
Nota: isso altera o tipo de todas as colunas para object
.
Exemplo:
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
Nota: o que você não pode fazer reformula os DataFrames dtype
para permitir todos os tipos de tipos de dados, usando astype
e, em seguida, o fillna
método DataFrame :
df1 = df.astype(object).replace(np.nan, 'None')
Infelizmente nem este, nem usar replace
, funciona com None
ver esta questão (fechado) .
Como um aparte, vale a pena notar que, para a maioria dos casos de uso, você não precisa substituir o NaN por Nenhum, consulte esta pergunta sobre a diferença entre NaN e Nenhum nos pandas .
No entanto, neste caso específico, parece que você faz (pelo menos no momento desta resposta).
None
emNULL
vez denan
?