问题描述:
python pandas判断缺失值一般采用 isnull(),然而生成的却是所有数据的true/false矩阵,对于庞大的数据dataframe,很难一眼看出来哪个数据缺失,一共有多少个缺失数据,缺失数据的位置。
首先对于存在缺失值的数据,如下所示
import pandas as pdimport numpy as npdf = pd.DataFrame(np.random.randn(10,6))# Make a few areas have NaN valuesdf.iloc[1:3,1] = np.nandf.iloc[5,3] = np.nandf.iloc[7:9,5] = np.nan 0 1 2 3 4 50 0.520113 0.884000 1.260966 -0.236597 0.312972 -0.1962811 -0.837552 NaN 0.143017 0.862355 0.346550 0.8429522 -0.452595 NaN -0.420790 0.456215 1.203459 0.5274253 0.317503 -0.917042 1.780938 -1.584102 0.432745 0.3897974 -0.722852 1.704820 -0.113821 -1.466458 0.083002 0.0117225 -0.622851 -0.251935 -1.498837 NaN 1.098323 0.2738146 0.329585 0.075312 -0.690209 -3.807924 0.489317 -0.8413687 -1.123433 -1.187496 1.868894 -2.046456 -0.949718 NaN8 1.133880 -0.110447 0.050385 -1.158387 0.188222 NaN9 -0.513741 1.196259 0.704537 0.982395 -0.585040 -1.693810df.isnull()会产生如下结果
0 1 2 3 4 50 False False False False False False1 False True False False False False2 False True False False False False3 False False False False False False4 False False False False False False5 False False False True False False6 False False False False False False7 False False False False False True8 False False False False False True9 False False False False False Falsedf.isnull().any()则会判断哪些”列”存在缺失值
0 False1 True2 False3 True4 False5 Truedtype: bool对于该问题,可以采用如下方式解决:
df[df.isnull().values==True]Out[126]: 0 1 2 3 4 51 1.090872 NaN -0.287612 -0.239234 -0.589897 1.8494132 -1.384721 NaN -0.158293 0.011798 -0.564906 -0.6071215 -0.477590 -2.696239 0.312837 NaN 0.404196 -0.7970507 0.369665 -0.268898 -0.344523 -0.094436 0.214753 NaN8 -0.114483 -0.842322 0.164269 -0.812866 -0.601757 NaN可以只显示存在缺失值的行列,清楚的确定缺失值的位置。
以上这篇Python Pandas找到缺失值的位置方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。