Pandas如何快速定位数据集中的缺失值?

科技   2024-12-06 13:31   江苏  

相信大家处理数据时,都会先观察数据的结构和缺失值的情况,今天就和大家分享几种快速查看数据集行列缺失值的方法,不用死记硬背,可以先收藏备用。


isnull() & sum() 统计法

isnull()sum() 方法搭配使用能够定位行列间的缺失值。看几个例子。

先创建一个示例 DataFrame

>>> import pandas as pd
>>> df = pd.DataFrame(
        {'a': [123None],
         'b': [34NoneNone],
         'c': [None678]})
>>> df
     a    b    c
0  1.0  3.0  NaN
1  2.0  NaN  6.0
2  3.0  NaN  7.0
3  NaN  6.0  8.0

1.输出 DataFrame 所有缺失值数量。

>>> df.isnull().sum().sum()
4

2.分别输出每一列的缺失值数量。

>>> df.isnull().sum()
a    1
b    2
c    1
dtype: int64

3.分别输出每一行的缺失值数量。

>>> df.isnull().sum(axis=1)
0    1
1    0
2    1
3    2
dtype: int64

4.输出指定列缺失值数量

>>> df['b'].isnull().sum()
2

5.输出指定行缺失值数量

>>> df.iloc[3].isnull().sum()
2

shape + count() 统计法

  • shape:DataFrame 的形状。(行数, 列数)。
  • count():对非缺失值进行计数。

1.输出 DataFrame 所有缺失值数量。

>>> (df.shape[0] - df.count()).sum()
4

2.分别输出每一列的缺失值数量。

>>> df.shape[0] - df.count()
a    1
b    2
c    1
dtype: int64

3.分别输出每一行的缺失值数量。

>>> df.shape[1] - df.count(axis=1)
0    1
1    0
2    1
3    2
dtype: int64

4.输出指定列缺失值数量

>>> df.shape[0] - df['b'].count()
2

5.输出指定行缺失值数量

>>> df.shape[1] - df.iloc[3].count()
2

定位缺失值位置

通过下面的方式可以快速定位缺失值的行列信息。

for col in df.columns:
    if df[col].count() != len(df):
        row = df[df[col].isnull().values==True].index[0]
        print(f'第{row}行,第{col}列为缺失值')
'''
第3行,第a列为缺失值
第2行,第b列为缺失值
第0行,第c列为缺失值
这就是今天要分享的内容,建议不要死记硬背,一步步的测试验证才能够真正地融会贯通。



Crossin的新书《码上行动:用ChatGPT学会Python编程》已经上市了。本书以ChatGPT为辅助,系统全面地讲解了如何掌握Python编程,适合Python零基础入门的读者学习。【点此查看详细介绍】
购买后可加入读者交流群,Crossin为你开启陪读模式,解答你在阅读本书时的一切疑问。
Crossin的其他书籍:


添加微信 crossin123 ,加入编程教室共同学习~

感谢转发点赞的各位~
Crossin的编程教室
每天5分钟,轻松学编程。点击关注这里有浅显易懂的 Python 入门教程。 编程世界的新手指南。
 最新文章