【问题标题】:Python Pandas - How to filter multiple columns by one valuePython Pandas - 如何按一个值过滤多列
【发布时间】:2017-07-31 08:57:36
【问题描述】:

我正在通过 pandas 进行分析。
我的表有 7M 行* 30 列。单元格值的范围从 -1 到 3 随机。现在我想根据列的值过滤掉行。

我了解如何根据多个条件进行选择,写下条件并通过“&”“|”组合。
但我有 30 列要按相同的值过滤和过滤。例如,需要选择最后 12 列的值等于 -1

df.iloc[:,-12:]==-1

上面的代码给了我一个布尔值。我需要实际的数据框。
这里的逻辑是“或”,表示如果任何列的值为-1,则需要选择该行。 另外,很高兴知道如果我需要“和”,所有列的值都为-1?
非常感谢

【问题讨论】:

    标签: python pandas data-analysis


    【解决方案1】:

    对于OR 情况,使用DF.any(如果any 元素沿特定轴是True,则返回True):

    df[(df.iloc[:,-12:] == -1).any(axis=1)]
    

    对于AND 的情况,使用DF.all(如果所有 元素都是沿特定轴的True,则返回True):

    df[(df.iloc[:,-12:] == -1).all(axis=1)]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-11-09
      • 1970-01-01
      • 2017-02-11
      • 2018-12-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-13
      相关资源
      最近更新 更多