merage主要为横向连接,用于将多个dataframe通过某个相同的键合并为一个;
concat可横向可纵向
一.merage
二.concat
1).方法原型
pd.concat(objs, axis=0, join='outer', join_axes=None, ignore_index=False, keys=None, levels=None, names=None, verify_integrity=False, copy=True)objs:待合并的对象集合,可以是Serice,Dataframe
axis:{0,1,...}合并方向,默认为0,表示纵向,1表示横向
join:{inner,outer}:合并方式,默认为outer,表示并集,inner表示交集
join_axes:按哪些对象的索引保存
ignore_index:{False,True},是否忽略原index,默认为不忽略
keys:为原始dataframe添加一个键,默认为无
1. result = pd.concat(frames)
2. result = pd.concat(frames, keys=['x', 'y', 'z'])
result.ix['y'] Out[7]: A B C D 4 A4 B4 C4 D4 5 A5 B5 C5 D5 6 A6 B6 C6 D6 7 A7 B7 C7 D7
3.result = pd.concat([df1, df4], axis=1)
4.result = pd.concat([df1, df4], axis=1, join='inner')
5.result = pd.concat([df1, df4], axis=1, join_axes=[df1.index])
6.result = pd.concat([df1, s1], axis=1)
7.result = pd.concat([df1, s2, s2, s2], axis=1)
8.result = pd.concat([df1, s1], axis=1, ignore_index=True)
9.result = pd.concat(frames, keys=['x', 'y', 'z'])
二.append横向和纵向同时扩充,不考虑columns和index
1.result = df1.append(df2)
2.result = df1.append(df4)
3.result = df1.append([df2, df3])
4.result = df1.append(df4, ignore_index=True)
三.merage
merge 函数通过一个或多个键来将数据集的行连接起来。该函数的主要 应用场景是针对同一个主键存在两张包含不同特征的表,通过该主键的连接,将两张表进行合并。合并之后,两张表的行数没有增加,列数是两张表的列数之和减一。
pd.merge(left, right, how='inner', on=None, left_on=None, right_on=None, left_index=False, right_index=False, sort=True, suffixes=('_x', '_y'), copy=True, indicator=False)left:待合并dataframe1
right:待合并dataframe2
1. result = pd.merge(left, right, on='key')
2. result = pd.merge(left, right, on=['key1', 'key2'])
3.result = pd.merge(left, right, how='left', on=['key1', 'key2'])
4. result = pd.merge(left, right, how='right', on=['key1', 'key2'])
5. result = pd.merge(left, right, how='outer', on=['key1', 'key2'])
6. result = pd.merge(left, right, how='inner', on=['key1', 'key2'])