对于两个表头相同的数据,其合并方法如下,通过pd.merge函数对指定的表头变量进行连接,此外该方法可通过控制left_indexh和right_index参数决定是否保留列标题(或index)。更详细的比较有待后续更新。。。
#%%
import pandas as pd
df1 = pd.DataFrame({'A': ['A0', 'A1', 'A1'],
'B': ['B0', 'B1', 'B2']},
index=['K0']*1+['K5']*2)
df2 = pd.DataFrame({'A': ['C1', 'C2', 'C3'],
'B': ['D0', 'D1', 'D2']},
index=['K1']*1+['K2']*2)
df3 = df2.merge(df1,on=['A','B'],left_index=True,right_index=True, how='outer')
'''
on 指定需要连接的表头变量
left_indexh和right_index参数分别决定是否对df1和df2的index进行连接
how='outer' 仅在列方向合并,不增加行(表头变量)的个数
'''
print('df1=\n',df1,'\n')
print('df2=\n',df2,'\n')
print('df3=\n',df3,'\n')
>>>
df1=
A B
K0 A0 B0
K5 A1 B1
K5 A1 B2
df2=
A B
K1 C1 D0
K2 C2 D1
K2 C3 D2
df3=
A B
K0 A0 B0
K1 C1 D0
K2 C2 D1
K2 C3 D2
K5 A1 B1
K5 A1 B2
补充一下,貌似合并后会自动按照每行的index按照字典顺序进行排序,sort选项失效。在使用的时候需要注意行的先后顺序是否发生变化。