Pandas中按索引合并数据的merge与join方法详解
本文介绍在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按索引合并数据集的方法介绍完毕,希望能为读者提供有价值的参考,欢迎继续支持本站获取更多内容。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









