计算 Pandas DataFrame 中一个或多个列的 NaN 值的处理步骤如下:
- 查找 DataFrame 中每个列的 NaN 值,可以使用
isna()
或isnull()
方法,这两个方法的作用是一样的。
示例代码:
import pandas as pd
df = pd.read_csv('data.csv')
# 使用 isna() 方法查找 columns 列的 NaN 值
nan_count = df['columns'].isna().sum()
print(f'在 {df.shape[0]} 条记录中,共找到 {nan_count} 条 NaN 值。')
输出结果:
在 1000 条记录中,共找到 200 条 NaN 值。
- 如果 DataFrame 中有多个包含 NaN 值的列,可以使用
sum()
函数将它们的 NaN 值合并在一起计算。
示例代码:
import pandas as pd
df = pd.read_csv('data.csv')
# 使用 isna() 方法查找多个列的 NaN 值
nan_counts = df[['col1', 'col2', 'col3']].isna().sum()
print(f'col1, col2 和 col3 列中,NaN 值的数量分别为:\n{nan_counts}')
输出结果:
col1, col2 和 col3 列中,NaN 值的数量分别为:
col1 100
col2 200
col3 150
dtype: int64
- 对于包含 NaN 值的列,可以选择填充 NaN 值,例如使用
fillna()
方法将 NaN 值替换成某个特定的值,或者使用dropna()
方法删除所有包含 NaN 值的行。
示例代码:
import pandas as pd
df = pd.read_csv('data.csv')
# 使用 fillna() 方法将 NaN 值替换成 0
df['col1'] = df['col1'].fillna(0)
print(f'col1 列中,NaN 值的数量为 {df["col1"].isna().sum()}。')
# 使用 dropna() 方法删除所有包含 NaN 值的行
df = df.dropna()
print(f'删除 NaN 值后,DataFrame 中的记录数量为 {df.shape[0]}。')
输出结果:
col1 列中,NaN 值的数量为 0。
删除 NaN 值后,DataFrame 中的记录数量为 800。
综上所述,计算 Pandas DataFrame 中一个或多个列的 NaN 值的步骤分别是:查找 NaN 值、合并 NaN 值、填充或删除 NaN 值。