如下所示:
1
2
3
|
import numpy as np import pandas as pd from pandas import Series,DataFrame |
一、merge函数
1
2
3
4
5
6
7
|
left1 = DataFrame({ '水果' :[ '苹果' , '梨' , '草莓' ], '价格' :[ 3 , 4 , 5 ], '数量' :[ 9 , 8 , 7 ]}).set_index( '水果' ) right1 = DataFrame({ '水果' :[ '苹果' , '草莓' ], '产地' :[ '美国' , '中国' ]}) print (left1) print (right1) |
1
2
3
4
5
6
7
8
|
价格 数量 水果 苹果 3 9 梨 4 8 草莓 5 7 产地 水果 0 美国 苹果 1 中国 草莓 |
1
|
print (pd.merge(left1,right1,right_on = '水果' ,left_index = True ,how = 'outer' )) |
1
2
3
4
|
价格 数量 产地 水果 0 3 9 美国 苹果 1 4 8 NaN 梨 1 5 7 中国 草莓 |
二、DataFrame的join函数
1
2
|
left2 = left1 right2 = right1.set_index( '水果' ) |
1.join函数默认将两个DataFrame的index进行合并
1
|
print (left2.join(right2)) |
1
2
3
4
5
|
价格 数量 产地 水果 苹果 3 9 美国 梨 4 8 NaN 草莓 5 7 中国 |
2.若其中一个DataFrame合并的键不在索引上,可使用on参数
1
|
print (right1.join(left1,on = '水果' ,how = 'outer' )) |
1
2
3
4
|
产地 水果 价格 数量 0 美国 苹果 3 9 1 中国 草莓 5 7 1 NaN 梨 4 8 |
3.多个DataFrame按索引合并
1
2
|
another = DataFrame({ '水果' :[ '苹果' , '香蕉' , '梨' ], '品质' :[ 'AA' , 'AAAA' , 'A' ]}).set_index( '水果' ) |
1
|
print (left2.join([right2,another],how = 'outer' )) |
1
2
3
4
5
|
价格 数量 产地 品质 梨 4.0 8.0 NaN A 苹果 3.0 9.0 美国 AA 草莓 5.0 7.0 中国 NaN 香蕉 NaN NaN NaN AAAA |
以上这篇Pandas 按索引合并数据集的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/bqw18744018044/article/details/79948493