cxmscb 2018-11-15
如下所示:
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
计算的时候总共分3步,1到2是第二组......lower: i. 这组数据中的小值 higher: j. 这组数据中的大值,fraction 是第三步中的小数部分,意思是当前这组数据的0到1的分位数
Series是一种类似于一维数组的对象,由一组数据以及一组与之对应的索引组成。 index: 索引序列,必须是唯一的,且与数据的长度相同. 如果没有传入索引参数,则默认会自动创建一个从0~N的整数索引