2017-04-15 49 views
6

Bazı satırların eksik değerler içerdiği bir veri çerçevem ​​var.Bir veya daha fazla NaN değerine sahip satırları pandalar veri alanında görüntüleme

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 

Ekrandaki bu satırlarda görüntülemek istiyorum. df.isnull()'u denerseniz, True ve False ile uzun bir veri çerçevesi sağlar. Bu satırları seçip bunları ekranda basabileceğim bir yol var mı?

+0

Olası yinelenen: Eksik değerlere sahip yalnızca satırları iade ] (https://stackoverflow.com/questions/30447083/python-pandas-return-only-those-rows-which-have-missing-values) – metersk

cevap

8

Sen boolean indexing ile üst üste check az bir True için parametre axis=1 ile any kullanabilirsiniz:

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, Pandalar ait
+0

Teşekkürler. Bu (1) 'ne anlama geliyor? – Peaceful

+1

, 'axis = 1', daha iyisi eklemek. – jezrael

+1

ekseni: {0 veya ‘dizin’, 1 veya ‘sütun’} veya tuple/listesinin Birden çok eksende bırakılması için tuple veya liste verin –