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

如何基于复合主键合并两个Pandas DataFrame?

基于复合主键合并Pandas DataFrame

你可以直接用Pandas的merge()方法,通过指定['Name', 'Sig']作为匹配的复合主键列完成合并,这个方法不受行顺序影响,能精准关联两个DataFrame里的对应数据。

完整示例代码

import random
import pandas as pd
import numpy as np

# 生成示例数据
A = ['DF-PI-05', 'DF-PI-09', 'DF-PI-10', 'DF-PI-15', 'DF-PI-16', 'DF-PI-19']
Sig = [100,200,400]*6
B = np.repeat(A,3)

C = pd.DataFrame(list(zip(B,Sig)),columns=['Name','Sig'])
D = pd.DataFrame(list(zip(B,Sig)),columns=['Name','Sig'])

C['param_1'] = np.linspace(0,20,18)
D['param_2'] = np.linspace(20,100,18)

# 基于复合主键合并
merged_df = pd.merge(C, D, on=['Name', 'Sig'])

# 查看合并结果
print(merged_df.head())

关键说明

  • merge()默认采用内连接(how='inner'),只保留两个DataFrame中共同存在的复合主键记录;
  • 如果需要保留所有记录(包括单个DataFrame独有的主键数据),可以指定参数how='outer';
  • 该方法完全不依赖行的排列顺序,无论Name列如何无序,都能通过Name与Sig的组合精准匹配对应数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 18:56:01