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