Pandas联合和合并数据集

连接方式

pandas.merge 根据一个或多个键将行进行连接,与SQL数据库的1连接操作类似
pandas.concat 使对象在轴向上进行黏合或 ‘堆叠’
join()方法将不再解释
combine_first()实例方法允许将重叠的数据拼接在一起,以使用一个对象的值填充另个对象的缺失值

pd.merge() 横向连接

多对一连接:df1在连接键所对应列中的值每个值有多个,df2在连接键所对应列中的值每个值有一个
多对多链接:df1在连接键所对应列中的值每个值有多个,df2在连接键所对应列中的值每个值有多个
多对多连接是行的笛卡尔积(df1有3行的值为‘b’,df2有2行的值为‘b’,连接后的结果中会有3*2行‘b’)
函数参数:

left          左边的DataFrame
right         右边的DataFrame
how           'inner’,'outer','left','right'之一,默认是'inner'
on            需要连接的列名,必须是在两边的DataFrame对象都有的列名,并以left和right中的列名的交集作为连接键
left_on       left  DataFrame中用做连接的键
right_on      right  DataFrame中用做连接的键
left_index    使用left的行索引作为他的连接键(如果是multiindex,则是多个键)
right_index   使用right的行索引作为他的连接键(如果是multiindex,则是多个键)
sort          通过连接键按字母顺序对合并的数据进行排序,默认为True
suffixes      在重叠情况下,添加到列名都得字符串元组,默认是(‘_x’,'_y')
copy          默认True
indicator     添加一个特殊的列,指示每一行的来源:值将根据每行中连接数据的来源分别left_only,right_onlt,both

根据索引合并

pd.merge(df1,df2,left_on='key',right_index=True)

多层索引合并

pd.merge(df1,df2,left_on=['key1','key2'],right_index=True)

两边都用索引进行合并

pd.merge(df1,df2,left_index=True,right_index=True)

沿轴向连接pd.concat()

函数参数

objs              需要连接的pandas对象列表或字典,必选参数
axis              连接的轴向,默认为0(沿着行方向从上到下)
join              ‘inner’内连接     ‘outer’ 外连接
join_axes         用于指定其他n-1轴的特定索引,可以替代内/外连接的逻辑
keys              与要连接的对象关联的值,沿着连接轴形成分层索引,可以是任意值的列表或数组,也可以是元组的数据,数组的列表
leels             在键值传递时,该函数用于指定多层索引的层级
names             如果传入了keys和/或levels参数,该参数用于多层索引的层级名称
verify_integrity  检查连接对象中的新轴是否重复,是;引发异常   默认(False)允许重复
ignore_index      不沿着连接轴保留索引,而是产生一段新的索引

联合重叠数据

逐列做相同的操作,根据传入的对象来修补调用对象的缺失值
a.combine_first(b) b中的值填充a中的缺失值

你可能感兴趣的:(Pandas,Pandas联合和合并数据集)