Pandas中按索引合并数据的merge与join方法详解

橘子海
橘子海
发布时间:2026-10-13 | 4人浏览过
原创

本文介绍在Pandas中通过merge和join函数按索引合并数据集的方法。重点讲解merge函数利用left_index和right_on参数处理非索引键的合并,以及join函数默认基于索引合并及多DataFrame同时合并的操作。通过具体代码示例展示outer模式下的数据对齐结果,帮助开发者掌握不同场景下的最佳实践。

具体实现方式如下所示:

import numpy as np
import pandas as pd
from pandas import Series,DataFrame

一、使用merge函数进行合并

left1 = DataFrame({'水果':['苹果','梨','草莓'],
     '价格':[3,4,5],
     '数量':[9,8,7]}).set_index('水果')
right1 = DataFrame({'水果':['苹果','草莓'],
     '产地':['美国','中国']})
print(left1)
print(right1)
 价格 数量
水果  
苹果 3 9
梨 4 8
草莓 5 7
 产地 水果
0 美国 苹果
1 中国 草莓
print(pd.merge(left1,right1,right_on='水果',left_index=True,how='outer'))
 价格 数量 产地 水果
0 3 9 美国 苹果
1 4 8 NaN 梨
1 5 7 中国 草莓

二、利用DataFrame的join函数进行合并

left2 = left1
right2 = right1.set_index('水果')

1. join函数默认行为是将两个DataFrame的索引(index)进行合并。

print(left2.join(right2))
 价格 数量 产地
水果    
苹果 3 9 美国
梨 4 8 NaN
草莓 5 7 中国

2. 如果参与合并的某个DataFrame其关联键不在索引列上,可以通过指定on参数来明确合并依据。

print(right1.join(left1,on='水果',how='outer'))
 产地 水果 价格 数量
0 美国 苹果 3 9
1 中国 草莓 5 7
1 NaN 梨 4 8

3. 当需要合并多个DataFrame时,也可以基于索引进行合并操作。

another = DataFrame({'水果':['苹果','香蕉','梨'],
     '品质':['AA','AAAA','A']}).set_index('水果')
print(left2.join([right2,another],how='outer'))
  价格 数量 产地 品质
梨 4.0 8.0 NaN  A
苹果 3.0 9.0 美国 AA
草莓 5.0 7.0 中国 NaN
香蕉 NaN NaN NaN AAAA

以上关于Pandas按索引合并数据集的方法介绍完毕,希望能为读者提供有价值的参考,欢迎继续支持本站获取更多内容。

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表