Pandas:如何用 none 替换 nan


您可以使用以下基本语法将 pandas DataFrame 中的NaN值替换为None

 df = df. replace (np. nan , None )

当您需要将 pandas DataFrame 导出到使用None而不是NaN表示缺失值的数据库时,此函数特别有用。

以下示例展示了如何在实践中使用此语法。

示例:在 Pandas 中将 NaN 替换为 None

假设我们有以下 pandas DataFrame:

 import pandas as pd
import numpy as np

#createDataFrame
df = pd. DataFrame ({' A ': [5, 6, 8, np.nan, 4, 15, 13],
                   ' B ': [np.nan, 12, np.nan, 10, 23, 6, 4],
                   ' C ': [2, 7, 6, 3, 2, 4, np.nan],
                   ' D ': [5, np.nan, 6, 15, 1, np.nan, 4]})

#view DataFrame
print (df)

      ABCD
0 5.0 NaN 2.0 5.0
1 6.0 12.0 7.0 NaN
2 8.0 NaN 6.0 6.0
3 NaN 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 NaN
6 13.0 4.0 NaN 4.0

请注意,DataFrame 中有多个NaN值。

要将每个NaN值替换为None ,我们可以使用以下语法:

 #replace all NaN values with None
df = df. replace (np. nan , None )

#view updated DataFrame
print (df)

      ABCD
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0

请注意,DataFrame 每一列中的每个NaN均已替换为None

请注意,如果您只想将特定列中的NaN值替换为None ,可以使用以下语法:

 #replace NaN values with None in column 'B' only
df[' B '] = df[' B ']. replace (np. nan , None )

#view updated DataFrame
print (df)

      ABCD
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 NaN
2 8.0 None 6.0 6.0
3 NaN 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 NaN
6 13.0 4.0 NaN 4.0

请注意,仅“B”列中的NaN值已更改为None

相关:如何在 Pandas 中用零替换 NaN 值

其他资源

以下教程解释了如何在 pandas 中执行其他常见操作:

如何替换Pandas中的特定值
如何按列值过滤 Pandas DataFrame
如何在Pandas中填充多列的NA值

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注