1. 背景
在进行表格操作的时候,经常需要将两个excel表格数据进行横向合并,或者对原有的数据进行纵向扩充,这时候,就可以使用Pandas里面的 merge
纵向合并和 concat
横向连接功能了,如下:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200226190046503.png?x-oss-
process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2x5c184Mjg=,size_16,color_FFFFFF,t_70)
2. 纵向合并
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)
left
:第一个df
right
:第二个df
on
:参考键(left_on左边df的参考键、right_on右边df的参考键)
left_index、right_index
:左右的参考索引
how
:合并方式
sort
:排序参数
suffixes=('_x', '_y')
相同列标题时,主动添加后缀部分
样本数据生成:
df1 = pd.DataFrame({'key': ['K0', 'K1', 'K2', 'K3'],
'A': ['A0', 'A1', 'A2', 'A3'],
'B': ['B0', 'B1', 'B2', 'B3']})
df2 = pd.DataFrame({'key': ['K0', 'K1', 'K2', 'K3'],
'C': ['C0', 'C1', 'C2', 'C3'],
'D': ['D0', 'D1', 'D2', 'D3']})
df3 = pd.DataFrame({'key1': ['K0', 'K0', 'K1', 'K2'],
'key2': ['K0', 'K1', 'K0', 'K1'],
'A': ['A0', 'A1', 'A2', 'A3'],
'B': ['B0', 'B1', 'B2', 'B3']})
df4 = pd.DataFrame({'key1': ['K0', 'K1', 'K1', 'K2'],
'key2': ['K0', 'K0', 'K0', 'K0'],
'C': ['C0', 'C1', 'C2', 'C3'],
'D': ['D0', 'D1', 'D2', 'D3']})
2.1 按照相同的列标题进行数据合并
print(df1)
print(df2)
print(pd.merge(df1, df2, on='key'))
–> 输出的结果为:(最后的输出结果是按住key字段数据进行纵向合并)
key A B
0 K0 A0