我如何添加两个熊猫数据帧与另一个熊猫数据帧,并添加索引更改,如以下示例所示。
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


然后添加d_A = A_2-A的4列; 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   ..


谢谢,
[R

最佳答案

concatDataFrame.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


另一个想法是通过参数MultiIndex创建keys,然后使用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/

10-12 22:04
查看更多