Python Pandas - 如何按一个值过滤多个列

时间:2017-03-10 05:51:03

标签: python pandas data-analysis

我正在做大熊猫的分析 我的表有7M行* 30列。细胞值随机范围为-1至3。现在我想根据列的值来过滤行。

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

App.ApplicationAdapter = DS.RESTAdapter.extend({
   peekAll: () {
       //...
   }
});

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

1 个答案:

答案 0 :(得分:5)

对于OR案例,请使用DF.any(如果任何元素沿特定轴True,则返回True):

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

对于AND案例,请使用DF.all(如果所有元素沿特定轴True,则返回True):

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