1. 程式人生 > >python pandas中.isnull().any()含義

python pandas中.isnull().any()含義

問題描述: 
python pandas判斷缺失值一般採用 isnull(),然而生成的卻是所有資料的true/false矩陣,對於龐大的資料dataframe,很難一眼看出來哪個資料缺失,一共有多少個缺失資料,缺失資料的位置。

首先對於存在缺失值的資料,如下所示

import pandas as pd
import numpy as np

df = pd.DataFrame(np.random.randn(10,6))
# Make a few areas have NaN values
df.iloc[1:3,1] = np.nan
df.iloc[5,3] = np.nan
df.iloc[7
:9,5] = np.nan
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
         0         1         2         3         4         5
0  0.520113  0.884000  1.260966 -0.236597  0.312972 -0.196281
1 -0.837552       NaN  0.143017  0.862355  0.346550  0.842952
2 -0.452595       NaN -0.420790  0.456215  1.203459  0.527425
3  0.317503 -0.917042  1.780938 -1.584102  0.432745  0.389797
4 -0.722852
1.704820 -0.113821 -1.466458 0.083002 0.011722 5 -0.622851 -0.251935 -1.498837 NaN 1.098323 0.273814 6 0.329585 0.075312 -0.690209 -3.807924 0.489317 -0.841368 7 -1.123433 -1.187496 1.868894 -2.046456 -0.949718 NaN 8 1.133880 -0.110447 0.050385 -1.158387 0.188222 NaN 9 -0.513741 1.196259 0.704537 0.982395
-0.585040 -1.693810
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

df.isnull()會產生如下結果

       0      1      2      3      4      5
0  False  False  False  False  False  False
1  False   True  False  False  False  False
2  False   True  False  False  False  False
3  False  False  False  False  False  False
4  False  False  False  False  False  False
5  False  False  False   True  False  False
6  False  False  False  False  False  False
7  False  False  False  False  False   True
8  False  False  False  False  False   True
9  False  False  False  False  False  False
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

df.isnull().any()則會判斷哪些”列”存在缺失值

0    False
1     True
2    False
3     True
4    False
5     True
dtype: bool
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

對於該問題,可以採用如下方式解決:

df[df.isnull().values==True]
  • 1
Out[126]: 
          0         1         2         3         4         5
1  1.090872       NaN -0.287612 -0.239234 -0.589897  1.849413
2 -1.384721       NaN -0.158293  0.011798 -0.564906 -0.607121
5 -0.477590 -2.696239  0.312837       NaN  0.404196 -0.797050
7  0.369665 -0.268898 -0.344523 -0.094436  0.214753       NaN
8 -0.114483 -0.842322  0.164269 -0.812866 -0.601757       NaN
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

可以只顯示存在缺失值的行列,清楚的確定缺失值的位置。