2017-04-15 66 views
6

我有一個數據幀,其中一些行包含缺失值。在熊貓數據框中顯示具有一個或多個NaN值的行

In [31]: df.head() 
Out[31]: 
          alpha1 alpha2 gamma1 gamma2  chi2min 
filename                   
M66_MI_NSRh35d32kpoints.dat 0.8016 0.9283 1.000000 0.074804 3.985599e+01 
F71_sMI_DMRI51d.dat   0.0000 0.0000  NaN 0.000000 1.000000e+25 
F62_sMI_St22d7.dat   1.7210 3.8330 0.237480 0.150000 1.091832e+01 
F41_Car_HOC498d.dat   1.1670 2.8090 0.364190 0.300000 7.966335e+00 
F78_MI_547d.dat    1.8970 5.4590 0.095319 0.100000 2.593468e+01 

我要顯示在屏幕上的行。如果我嘗試df.isnull(),它會給出一個很長的數據幀,其中TrueFalse。有什麼方法可以選擇這些行並將它們打印在屏幕上?

+0

的[Python中,大熊貓可能重複:只返回具有遺漏值的行](https://stackoverflow.com/questions/30447083/python-pandas-return-only-those-rows-which-have-missing-values) – metersk

回答

8

可以在一行中使用any與參數axis=1用於檢查至少一個Trueboolean indexing

df1 = df[df.isnull().any(axis=1)] 

print (df) 
          alpha1 alpha2 gamma1 gamma2  chi2min 
filename                  
M66_MI_NSRh35d32kpoints.dat 0.8016 0.9283 1.000000 0.074804 3.985599e+01 
F71_sMI_DMRI51d.dat   0.0000 0.0000  NaN 0.000000 1.000000e+25 
F62_sMI_St22d7.dat   1.7210 3.8330 0.237480 0.150000 1.091832e+01 
F41_Car_HOC498d.dat   1.1670 2.8090 0.364190 0.300000 7.966335e+00 
F78_MI_547d.dat    1.8970 5.4590 0.095319  NaN 2.593468e+01 

print (df.isnull()) 
          alpha1 alpha2 gamma1 gamma2 chi2min 
filename              
M66_MI_NSRh35d32kpoints.dat False False False False False 
F71_sMI_DMRI51d.dat   False False True False False 
F62_sMI_St22d7.dat   False False False False False 
F41_Car_HOC498d.dat   False False False False False 
F78_MI_547d.dat    False False False True False 

print (df.isnull().any(axis=1)) 
filename 
M66_MI_NSRh35d32kpoints.dat False 
F71_sMI_DMRI51d.dat    True 
F62_sMI_St22d7.dat    False 
F41_Car_HOC498d.dat   False 
F78_MI_547d.dat     True 
dtype: bool 

df1 = df[df.isnull().any(axis=1)] 
print (df1) 
        alpha1 alpha2 gamma1 gamma2  chi2min 
filename               
F71_sMI_DMRI51d.dat 0.000 0.000  NaN  0.0 1.000000e+25 
F78_MI_547d.dat  1.897 5.459 0.095319  NaN 2.593468e+01 
+0

謝謝。那(1)'代表什麼? – Peaceful

+1

它是'axis = 1',最好加上它。 – jezrael

+1

axis:{0或'index',1或'columns'}或元組/列表 將元組或列表傳遞給多軸 –

相關問題