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列为缺失值 复制代码
这就是今天要分享的内容,建议不要死记硬背,一步步的测试验证才能够真正的融会贯通。