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

举报
Python新视野 发表于 2022/04/28 18:19:46 2022/04/28
【摘要】 大家好,我是丁小杰。相信大家处理数据时,都会先观察数据的结构和缺失值的情况,今天就和大家分享几种快速查看数据集行列缺失值的方法,如果没记住的话,建议收藏备用。 isnull() & sum() 统计法isnull() 与 sum() 方法搭配使用能够定位行列间的缺失值。看几个例子。先创建一个示例 DataFrame。>>> import pandas as pd>>> df = pd.Dat...

大家好,我是丁小杰。

相信大家处理数据时,都会先观察数据的结构和缺失值的情况,今天就和大家分享几种快速查看数据集行列缺失值的方法,如果没记住的话,建议收藏备用。

isnull() & sum() 统计法

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

先创建一个示例 DataFrame

>>> import pandas as pd
>>> df = pd.DataFrame(
        {'a': [1, 2, 3, None],
         'b': [3, 4, None, None],
         'c': [None, 6, 7, 8]})
>>> 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列为缺失值

这就是今天要分享的内容,建议不要死记硬背,一步步的测试验证才能够真正的融会贯通。


【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。