如何使用Python按相同条件过滤多个数据框列

时间:2019-02-07 02:57:06

标签: python pandas dataframe filter

我正在尝试使用Python在多个数据框列中搜索单个条件。我正在使用的脚本没有给我希望的输出。代码如下:

df = df[df['Account Category' or 'Account Category 2' or 'Account Category 3'] == "Amazon.com and Pantry"]

我要搜索的条件出现在多列中。但是,使用此代码,它仅在第一列中显示该条件。任何帮助将不胜感激

1 个答案:

答案 0 :(得分:1)

本质上,您不是说“我希望这三列中的任何一个等于某物”,而是说“我希望col1等于某物,或col2等于某物,或col 3 ...”

在大熊猫中,您可以通过以下方式组合布尔表达式来表示:对|使用or,对&使用and

value = 'Amazon.com and Pantry'
filtered = df.loc[
    (df['Account Category'] == value) 
    | (df['Account Category 2'] == value) 
    | (df['Account Category 3'] == value)]

pandas文档非常好,这是link to the relevant部分,介绍布尔索引,这是您要尝试的操作!