如何将两个 pandas 数据帧与另一个数据帧添加在一起,并添加索引更改,如以下示例所示。 df1:
A B C D
1 1 2 3 2
2 2 2 3 1
3 2 3 2 1
df2:
A B C D
1 1 2 3 2
2 4 2 19 1
3 2 64 2 1
结果应该是
df_sum:
A B C D A_2 B_2 C_2 D_2
1 1 2 3 2 1 2 3 2
2 4 2 19 1 4 2 19 1
2 2 2 3 1 2 64 2 1
然后添加 4 列,d_A = A_2-A; d_B = B_2-B; d_C = C_2-C; d_D = D_2-D:
A B C D A_2 B_2 C_2 D_2 d_A d_B ..
1 1 2 3 2 1 2 3 2 0 0 ..
2 4 2 19 1 4 2 19 1 0 0 ..
2 2 2 3 1 2 64 2 1 0 62 ..
谢谢你,
最佳答案
使用concat
与 DataFrame.add_suffix
:
df = pd.concat([df1, df2.add_suffix('_2')], axis=1)
#alternative solution
#df = df1.join(df2.add_suffix('_2'))
print (df)
A B C D A_2 B_2 C_2 D_2
1 1 2 3 2 1 2 3 2
2 2 2 3 1 4 2 19 1
3 2 3 2 1 2 64 2 1
另一个想法是通过参数keys
创建MultiIndex
,然后通过使用f-string
s进行列表理解来压平它 - 输出有点不同:
df = pd.concat([df1, df2], axis=1, keys=('1','2'))
df.columns = [f'{j}_{i}' for i, j in df.columns]
print (df)
A_1 B_1 C_1 D_1 A_2 B_2 C_2 D_2
1 1 2 3 2 1 2 3 2
2 2 2 3 1 4 2 19 1
3 2 3 2 1 2 64 2 1
关于python - 将两个数据帧与新索引号合并,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52834064/