计算Pandas DataFrame中一个或多个列的NaN值

  • Post category:Python

计算 Pandas DataFrame 中一个或多个列的 NaN 值的处理步骤如下:

  1. 查找 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 值。
  1. 如果 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
  1. 对于包含 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 值。