You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何利用元组列表AB_col过滤Pandas DataFrame?

如何用元组列表过滤DataFrame的指定列?

你的思路方向是对的,但写法上有几个细节问题导致代码没生效,咱们来一步步修正:

首先,你原来写的df["A","B"]是错误的多列选择方式,要选取多列得用双层方括号df[['A', 'B']];另外DataFrame并没有zip方法,不能直接这么调用。

正确的做法是把每一行的A和B值拼成元组,再和AB_col里的元组做匹配,具体可运行的代码如下:

import pandas as pd

AB_col = [(0,230), (10,215), (15, 200), (20, 185), (40, 177), (0,237), (10,222), (15, 207), (20, 192), (40, 184)]
sales = [{'account': 'Jones LLC', 'A': 0, 'B': 230, 'C': 140}, {'account': 'Alpha Co', 'A': 20, 'B': 192, 'C': 215}, {'account': 'Blue Inc', 'A': 50, 'B': 90, 'C': 95 }]
df = pd.DataFrame(sales)

# 将A、B列的每行值转为元组,再判断是否在目标列表中
df_filtered = df[df[['A', 'B']].apply(tuple, axis=1).isin(AB_col)]
print(df_filtered)

运行后会得到符合条件的两行结果:

account   A    B    C
0    Jones LLC   0  230  140
1     Alpha Co  20  192  215

核心逻辑拆解:

  • df[['A', 'B']].apply(tuple, axis=1):遍历每一行,把该行的A和B值打包成一个元组,生成元组序列
  • .isin(AB_col):检查每个元组是否存在于AB_col列表中,返回布尔值序列
  • 最后用这个布尔序列过滤原DataFrame,留下匹配的行

内容的提问来源于stack exchange,提问作者Yogi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:54:12