在数据框中查找每一行都有值的列

时间:2018-10-12 11:28:39

标签: python pandas

如何找到每一行都有值的列 我的pd.DataFrame看起来像这样:

     A    B    C    D
1    1    2    3    2
2    2    2         1
3         3    2    1

我想得到这个输出

     B    D
1    2    2
2    2    1
3    3    1

如何检测正确的列?

谢谢你, R

1 个答案:

答案 0 :(得分:2)

在没有值缺少值的情况下使用:

df1 = df.loc[:, df.notna().all()]
#oldier pandas versions
#df1 = df.loc[:, df.notnull().all()]

print (df1)
   B  D
1  2  2
2  2  1
3  3  1

说明

notna比较无缺失值:

print (df.notna())
       A     B      C     D
1   True  True   True  True
2   True  True  False  True
3  False  True   True  True

检查列中的所有值是否都是DataFrame.allTrue

print (df.notna().all())
A    False
B     True
C    False
D     True
dtype: bool

如果没有值是空字符串,请用DataFrame.ne (!=)进行比较:

df = df.loc[:, df.ne('').all()]