首页 > 解决方案 > 如何使用 Python 按相同条件过滤多个数据框列

问题描述

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

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

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

标签: pythonpandasdataframefilter

解决方案


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

在 pandas 中,您可以通过组合这样的布尔表达式来表达这一点,使用|foror&for and

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

熊猫文档非常好,这里是解释布尔索引的相关部分的链接,这就是你想要做的!


推荐阅读