我有两个这样的数据集(简化示例)
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 等等......
你可以做一个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)
如果列表中有多个数据框,您可以使用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)
| 归档时间: |
|
| 查看次数: |
85 次 |
| 最近记录: |