【问题标题】:find columns in Dataframe where every row has a value [duplicate]在Dataframe中查找每行都有一个值的列[重复]
【发布时间】:2019-03-17 15:05:56
【问题描述】:

如何找到每一行都有值的列 我的 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

如何检测正确的列?

谢谢你, 回复

【问题讨论】:

  • 我已将此标记为与要求包含任何空值的列的问题的重复。您只需要使用它的否定,即~ 运算符。

标签: python pandas


【解决方案1】:

如果没有值是缺失值时使用:

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.all检查列中的所有值是否为True

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

如果没有值是空字符串,则比较DataFrame.ne(!=)

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-10-09
    • 1970-01-01
    • 2020-02-21
    • 2021-10-23
    • 2020-03-13
    • 1970-01-01
    • 2018-01-06
    • 1970-01-01
    相关资源
    最近更新 更多