@bogatron прав, вы можете использовать where
, стоит отметить, что вы можете сделать это изначально в пандах:
df1 = df.where(pd.notnull(df), None)
Примечание: это изменяет dtype всех столбцов на object
.
Пример:
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
Примечание: то, что вы не можете сделать, переделать DataFrames, dtype
чтобы разрешить все типы данных, используя astype
, а затем fillna
метод DataFrame :
df1 = df.astype(object).replace(np.nan, 'None')
К сожалению , ни этого, ни с помощью replace
, работа с None
увидеть это (закрытый) вопрос .
В стороне, стоит отметить, что для большинства случаев использования вам не нужно заменять NaN на None, см. Этот вопрос о разнице между NaN и None в пандах .
Однако в этом конкретном случае кажется, что да (по крайней мере, на момент этого ответа).
None
наNULL
вместоnan
?