【问题标题】:What is the best approach to remove in pandas all columns with all values equals to False?在 pandas 中删除所有值都等于 False 的所有列的最佳方法是什么?
【发布时间】:2022-01-13 23:34:58
【问题描述】:

我在this question 中看到了如何删除包含所有nan 的列,但我正在寻找一种方法来删除所有包含所有False 值的列。

使用该问题中的信息,我正在考虑用 nan 替换 False,删除它们,然后用 False 替换 nan,但我不知道这是否是最好的方法。

使用我的方法的工作代码如下:

df = pd.DataFrame(data={'A':[True, True, False], 'B': [False, True, False], 'C':[False, False, False], 'D': [True, True, True]})

df.replace(to_replace=False, value=np.nan, inplace=True)
df.dropna(axis=1, how='all', inplace=True)
df.fillna(False, inplace=True)

【问题讨论】:

  • df.loc[:, df.any()].

标签: pandas


【解决方案1】:

你可以使用:

df.loc[:,~df.eq(False).all()]

输出:

    A       B       D
0   True    False   True
1   True    True    True
2   False   False   True

【讨论】:

  • 谢谢,好多了
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-08-07
  • 2016-08-31
  • 2017-01-06
  • 2022-11-23
  • 1970-01-01
  • 1970-01-01
  • 2012-01-09
相关资源
最近更新 更多