@bogatron має право, ви можете скористатися where
, варто зазначити, що ви можете це робити в пандах:
df1 = df.where(pd.notnull(df), None)
Примітка: це змінює тип всіх стовпців на 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
?