根据列合并和重新排序数据框

EGM*_*686 2 python pandas

我有两个这样的数据集(简化示例)

id A B C
1  1 2 3 
2  4 1 3
3  2 5 3
Run Code Online (Sandbox Code Playgroud)

id A B C
1  2 2 2 
2  3 3 3
3  4 4 4
Run Code Online (Sandbox Code Playgroud)

我怎样才能加入才能得到

id A1 A2 B1 B2 C1 C2
1  1  2  2  2  3  2 
2  4  3  1  3  3  3
3  2  4  5  4  3  4
Run Code Online (Sandbox Code Playgroud)

所以我想保留 Id 并将 dfs 与 df1 的第一列组合为第一列,将第二个 df 中的第一列组合为 2 等等......

Hen*_*Yik 5

你可以做一个merge

print (df.merge(df2, on="id", suffixes=('1', '2')).set_index("id").sort_index(axis=1).reset_index())

   id  A1  A2  B1  B2  C1  C2
0   1   1   2   2   2   3   2
1   2   4   3   1   3   3   3
2   3   2   4   5   4   3   4
Run Code Online (Sandbox Code Playgroud)


ank*_*_91 5

如果列表中有多个数据框,您可以使用add_suffix和执行以下操作join

l = [df1,df2,..]
#assign suffixes on column names based on enumerator
l1 = [i.set_index("id").add_suffix(e) for e,i in enumerate(l,1)]
out = l1[0].join(l1[1:]).sort_index(axis=1).reset_index()
Run Code Online (Sandbox Code Playgroud)
print(out)

   id  A1  A2  B1  B2  C1  C2
0   1   1   2   2   2   3   2
1   2   4   3   1   3   3   3
2   3   2   4   5   4   3   4
Run Code Online (Sandbox Code Playgroud)