This question already has answers here:
How to find which columns contain any NaN value in Pandas dataframe
                                
                                    (6个答案)
                                
                        
                                2年前关闭。
            
                    
我如何找到每一行都有值的列
我的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

最佳答案

如果没有值缺少值,则使用:

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


检查列中的所有值是否都是TrueDataFrame.all

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




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

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

10-01 09:49