我想知道Python中是否有一种方法可以将来自具有相同名称(或相关名称)的不同数据框的列彼此相邻。
我知道可以使用JOIN
,但是我想从头开始做一个可以实现相同功能的功能。
示例:
我们假设有两个数据帧df1
和df2
df1
是
id A B
50 1 5
60 2 6
70 3 7
80 4 8
df2
是
id A_1 B_1
50 a b
60 c d
70 e f
80 g h
预期的输出:一个新的数据帧,例如df3
,看起来像这样
id A A_1 B B_1
50 1 a 5 b
60 2 c 6 d
70 3 e 7 f
80 4 g 8 h
答案 0 :(得分:2)
您可以将sorted()
与列名一起使用:
m=pd.concat([df1.set_index('id'),df2.set_index('id')],axis=1)
m[(sorted(m.columns))].reset_index()
id A A_1 B B_1
0 50 1 a 5 b
1 60 2 c 6 d
2 70 3 e 7 f
3 80 4 g 8 h
答案 1 :(得分:1)
首先,您join
2个数据帧-
df3 = df1.join(df2, how='inner')
然后您可以对索引进行排序-
df3 = df3.sort_index(axis=1)