【问题标题】:Remove columns with values 0 or 999999删除值为 0 或 999999 的列
【发布时间】:2016-07-18 19:20:18
【问题描述】:

我正在处理一个包含 400 列的大型数据集,其中一些列的值全为零,而其他列的值全为零,只有很少的“999999999”。我想摆脱这样的专栏。我能够为仅包含零的列执行此操作,但不确定对于包含零和 '999999999' 的列执行此操作

以下是删除零的代码-

 df = df.loc[:, (df != 0).any(axis=0)]

我知道这很简单。但是,如果有人可以帮助我完成下一部分,那就太棒了。谢谢

【问题讨论】:

  • 你的数据是什么?

标签: python python-3.x pandas data-analysis


【解决方案1】:

您可以使用.isin() 来设置多个值:

df = df.loc[:, (~df.isin([0, 99999999])).any(axis=0)]

【讨论】:

  • 语法错误:语法无效
【解决方案2】:

这应该可行:

df = df.loc[:, ((df != 0) & (df != 999999999)).any(axis=0)]

例子:

>>> df
           a  b  c
0          0  0  1
1          0  0  0
2  999999999  0  5


>>> df.loc[:, ((df != 0) & (df != 999999999)).any(axis=0)]
   c
0  1
1  0
2  5

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-12
    • 2014-03-28
    • 1970-01-01
    • 2022-06-19
    • 1970-01-01
    相关资源
    最近更新 更多