Pandas 计算每行缺失/NaN值的个数
在本文中,我们将介绍如何使用Pandas计算数据表中每行缺失/NaN值的个数。在数据分析的实践中,我们时常需要对数据表的缺失值进行处理和分析,因此了解如何计算每行缺失/NaN值的个数是非常有帮助的。
阅读更多:Pandas 教程
生成数据表
首先我们需要生成一个简单的数据表,其中包含一些缺失值和NaN值。
import pandas as pd
import numpy as np
data = {'Name': ['Alice', 'Bob', 'Charlie', 'David'],
'Age': [25, np.NaN, 21, 27],
'Gender': ['Female', 'Male', np.NaN, 'Male'],
'City': ['London', 'Paris', 'New York', np.NaN]}
df = pd.DataFrame(data)
print(df)
输出结果如下:
Name Age Gender City
0 Alice 25.0 Female London
1 Bob NaN Male Paris
2 Charlie 21.0 NaN New York
3 David 27.0 Male NaN
计算每行缺失/NaN值的个数
一旦有了数据表,我们可以使用.isnull()和.sum()来计算每行缺失/NaN值的个数。.isnull()函数返回一个布尔值DataFrame,其中缺失/NaN值对应的位置是True,非缺失/NaN值对应的位置是False。.sum()函数可以直接对布尔值DataFrame进行求和操作。
nan_count = df.isnull().sum(axis=1)
print(nan_count)
输出结果如下:
0 0
1 1
2 2
3 1
dtype: int64
结果表明,第一行没有缺失/NaN值,第二行和第四行各有一个缺失/NaN值,第三行有两个缺失/NaN值。
添加缺失值统计列
虽然上面的代码已经计算了每行缺失/NaN值的个数,但是我们希望将这个结果添加为一个新的列到原始数据表中,方便后续分析使用。
df['NaN Count'] = df.isnull().sum(axis=1)
print(df)
输出结果如下:
Name Age Gender City NaN Count
0 Alice 25.0 Female London 0
1 Bob NaN Male Paris 1
2 Charlie 21.0 NaN New York 2
3 David 27.0 Male NaN 1
我们成功地添加了一个新列NaN Count到数据表中,它记录了每行的缺失/NaN值的个数。
过滤缺失值过多的行
有时候,我们可能需要从数据表中删除缺失值特别多的行。这可以通过筛选NaN Count列来实现。
df_filtered = df[df['NaN Count'] < 2]
print(df_filtered)
输出结果如下:
Name Age Gender City NaN Count
0 Alice 25.0 Female London 0
1 Bob NaN Male Paris 1
3 David 27.0 Male NaN 1
这里我们选择保留NaN Count小于2的行,即所有行都会被保留。
总结
Pandas是一个强大的数据分析工具,它提供了丰富的功能和灵活的操作方式。在本文中,我们介绍了如何使用Pandas计算数据表中每行缺失/NaN值的个数,并添加缺失值统计列,以及如何过滤缺失值过多的行。这些操作可以帮助我们更好地理解和处理数据表中的缺失值,做出更准确的分析和预测。希望这篇文章对您有所帮助!
极客教程