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

如何对比两个Pandas DataFrame指定列并合并匹配行生成新DataFrame

解决DataFrame匹配行合并问题

先明确你的两个DataFrame定义:

import pandas as pd

df1 = pd.DataFrame({'ID1':['A','B','C','D'], 'ID2':['E','F','G','H'], 'No1':[1, 2, 3, 4]})
df2 = pd.DataFrame({'X':['X1','X2','X3','X4'], 'Y':['Y1','Y2','Y3','Y4'], 'No2':[ 3, 4, 5, 6]})

要实现基于No1和No2匹配值的行合并,直接用pandas的merge方法即可,指定匹配列并采用内连接(只保留两边都存在的匹配行):

# 执行内连接合并,匹配No1和No2的相同值
df_new = pd.merge(df1, df2, left_on='No1', right_on='No2', how='inner')
# 可选:删除重复的No2列(因为和No1值完全一致)
df_new = df_new.drop('No2', axis=1)

得到的df_new结构如下:

ID1 ID2  No1   X   Y
0   C   G    3  X1  Y1
1   D   H    4  X2  Y2

如果需要转换成你给出的列表格式,执行以下代码:

df_new.values.tolist()

输出结果:

[['C', 'G', 3, 'X1', 'Y1'], ['D', 'H', 4, 'X2', 'Y2']]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 09:42:51