Python:如何将来自不同数据帧的具有相同名称的列彼此相邻放置?

时间:2019-03-08 18:51:55

标签: python python-3.x pandas dataframe

我想知道Python中是否有一种方法可以将来自具有相同名称(或相关名称)的不同数据框的列彼此相邻。

我知道可以使用JOIN,但是我想从头开始做一个可以实现相同功能的功能。

示例:

我们假设有两个数据帧df1df2

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

2 个答案:

答案 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)