如何在 pandas 中用零替换 nan 值


您可以使用以下方法将 pandas DataFrame 中的 NaN 值替换为零:

方法1:将列中的NaN值替换为零

 df[' col1 '] = df[' col1 ']. fillna (0)

方法2:将多列中的NaN值替换为零

 df[[' col1 ', ' col2 ']] = df[[' col1 ', ' col2 ']]. fillna (0)

方法 3:将所有列中的 NaN 值替换为零

 df = df. fillna (0)

以下示例展示了如何将这些方法与以下 pandas DataFrame 一起使用:

 import pandas as pd
import numpy as np

#createDataFrame
df = pd. DataFrame ({' points ': [25, np.nan, 15, 14, 19, 23, 25, 29],
                   ' assists ': [5, np.nan, 7, np.nan, 12, 9, 9, 4],
                   ' rebounds ': [11, 8, 10, 6, 6, np.nan, 9, np.nan]})

#view DataFrame
print (df)

   points assists rebounds
0 25.0 5.0 11.0
1 NaN NaN 8.0
2 15.0 7.0 10.0
3 14.0 NaN 6.0
4 19.0 12.0 6.0
5 23.0 9.0 NaN
6 25.0 9.0 9.0
7 29.0 4.0 NaN

方法1:将列中的NaN值替换为零

以下代码展示了如何仅在“helps”列中将 NaN 值替换为零:

 #replace NaN values with zero in 'assists' column
df[' assists '] = df[' assists ']. fillna (0)

#view updated DataFrame
print (df)

   points assists rebounds
0 25.0 5.0 11.0
1 NaN 0.0 8.0
2 15.0 7.0 10.0
3 14.0 0.0 6.0
4 19.0 12.0 6.0
5 23.0 9.0 NaN
6 25.0 9.0 9.0
7 29.0 4.0 NaN

请注意,“assists”列中的 NaN 值已替换为零,但其他所有列中的 NaN 值仍然保留。

方法2:将多列中的NaN值替换为零

以下代码展示了如何将“points”和“assists”列中的NaN值替换为零:

 #replace NaN values with zero in 'points' and 'assists' column
df[[' points ', ' assists ']] = df[[' points ', ' assists ']]. fillna (0)

#view updated DataFrame
print (df)

   points assists rebounds
0 25.0 5.0 11.0
1 0.0 0.0 8.0
2 15.0 7.0 10.0
3 14.0 0.0 6.0
4 19.0 12.0 6.0
5 23.0 9.0 NaN
6 25.0 9.0 9.0
7 29.0 4.0 NaN

方法 3:将所有列中的 NaN 值替换为零

以下代码展示了如何在 DataFrame 的每一列中用零替换 NaN 值:

 #replace NaN values with zero in all columns
df = df. fillna (0)

#view updated DataFrame
print (df)

   points assists rebounds
0 25.0 5.0 11.0
1 0.0 0.0 8.0
2 15.0 7.0 10.0
3 14.0 0.0 6.0
4 19.0 12.0 6.0
5 23.0 9.0 0.0
6 25.0 9.0 9.0
7 29.0 4.0 0.0

其他资源

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

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

添加评论

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