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

如何在Pandas中通过多列组合匹配筛选DataFrame对应行数据

Pandas 多列组合匹配提取指定行实现方法

你可以通过以下两种常用方案实现需求:

方案1:使用merge内连接(推荐,性能更高)

直接对两个DataFrame的三个匹配列做内连接,自动筛选完全匹配的行,最后重置索引即可:

# 内连接匹配三列组合,重置索引丢弃原有索引
result = pd.merge(df, combinations_i_want, on=["Category", "Name", "Year"], how="inner").reset_index(drop=True)

方案2:使用isin构造布尔索引

先把需要匹配的组合转为元组列表,再校验原DataFrame每行的对应列组合是否在列表中:

# 提取目标组合的元组列表
target_combs = list(combinations_i_want.itertuples(index=False, name=None))
# 构造匹配掩码
match_mask = df[["Category", "Name", "Year"]].apply(tuple, axis=1).isin(target_combs)
# 筛选结果并重置索引
result = df[match_mask].reset_index(drop=True)

两种方案输出的结果均包含你需要的3条记录,且不保留原表索引。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 11:36:04