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

如何基于B、C列匹配合并两个Pandas DataFrame?

基于多列匹配合并Pandas DataFrame

你可以使用Pandas的merge()函数,通过指定匹配列(B和C)实现需求,无需依赖索引匹配。具体代码如下:

import pandas as pd

# 定义原始DataFrame
df1 = pd.DataFrame({'A': [2, 3, 4], 'B': [5, 6, 7], 'C': [8, 9, 0]})
df2 = pd.DataFrame({'B': [6, 7, 5], 'C': [9, 0, 8], 'D': [1, 6, 2]})

# 基于B、C列匹配合并,保留df1的全部行结构
df3 = pd.merge(df1, df2, on=['B', 'C'], how='left')

print(df3)
# 输出结果与期望一致:
#    A  B  C  D
# 0  2  5  8  2
# 1  3  6  9  1
# 2  4  7  0  6

关键参数说明

  • on=['B', 'C']:明确指定以B和C两列作为匹配键,只有当两行的B、C值完全相同时才会合并,彻底避开索引不匹配的问题。
  • how='left':以df1为基准保留所有行,同时将df2中匹配到的D列值对应填充。如果df1存在B、C组合在df2中无匹配项,对应D列会显示NaN(你的示例中所有组合均能匹配,因此无此情况)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 06:49:51