2017-04-15 17 views
6

一部の行に欠損値が含まれているデータフレームがあります。pandasデータフレームに1つ以上の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

可能な重複:欠損値を持つ行のみを返します。 ](https://stackoverflow.com/questions/30447083/python-pandas-return-only-those-rows-which-have-missing-values) – metersk

答えて

8

あなたはboolean indexingと行のチェック少なくとも一つTrueのためのパラメータaxis=1anyを使用することができます。

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 
[Pythonは、パンダはの
+0

ありがとうございました。その '(1)'は何を表しているのですか? – Peaceful

+1

これは 'axis = 1'ですが、それを追加する方が良いでしょう。 – jezrael

+1

軸:{0または 'インデックス'、1または '列'}、またはそのタプル/リスト タプルまたはリストを複数の軸に渡す –

関連する問題