python - 如何使用 Python 按相同条件过滤多个数据框列
问题描述
我正在尝试使用 Python 在多个数据框列中搜索单个条件。我正在使用的脚本没有给我我希望的输出。代码如下:
df = df[df['Account Category' or 'Account Category 2' or 'Account Category 3'] == "Amazon.com and Pantry"]
我正在搜索的条件出现在多个列中。但是,使用此代码,它仅显示第一列的标准。任何帮助,将不胜感激
解决方案
本质上,您通常不会说“我希望这 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)]
熊猫文档非常好,这里是解释布尔索引的相关部分的链接,这就是你想要做的!
推荐阅读
- php - PHP responses nothing when requesting from iOS App (Swift)
- javascript - 告诉 npm 在特定文件夹中查找 package.json
- woocommerce - 结帐 - 根据地理位置限制计费和运输中的国家/地区
- ssis - Attunity 连接器未在 VS 2017、SQL Server 2017 的 SSIS 中显示
- jquery - 查找页面中的所有 datetimepicker 控件
- c# - ContainerFromItem() 从绑定对象中选择 GridViewItem
- reactjs - 如果组件值已在反应中更改,则启用按钮
- excel - 根据参数(连字符)将文件夹中的 Tiff 文件转置为 CSV
- java - Java中机器人框架的“等待页面包含”的等效预期条件是什么
- sql-server - SQL Server 2000 中的 LAG() 或 LEAD() 之类的东西