我正在尝试使用Python在多个数据框列中搜索单个条件。我正在使用的脚本没有给我希望的输出。代码如下:
df = df[df['Account Category' or 'Account Category 2' or 'Account Category 3'] == "Amazon.com and Pantry"]
我要搜索的条件出现在多列中。但是,使用此代码,它仅在第一列中显示该条件。任何帮助将不胜感激
答案 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部分,介绍布尔索引,这是您要尝试的操作!