首页 > 解决方案 > Pandas,来自 2 个 DF 的两列的总和值

问题描述

我有两个数据框,如下所示(示例数据):

df1:

Key1    Val1    Val2    Val3
A       2       1       3
B       2       2       2
C       3       3       4
D       4       4       2
E       5       6       5

df2:

Key1    Seasionality
A       1.2
B       -1
C       1
D       1.2
E       1.5

我们如何添加Seasonalitydf1 (val1, val2 , val3) where df1.key1 = df2.key1.

期望的输出:

Key1    Val1    Val2    Vale
A       3.2     2.2     4.2
B       1       1       1
C       4       4       5
D       5.2     5.2     3.2
E       6.5     7.5     6.5

以前我有类似的要求,我需要从两个不同的 df 添加具有相同键的列,但它们具有相似的列名,所以我能够使用:

pd.concat([df1,df2]).groupby(level=0).sum()

但想不出解决上述问题的办法。

标签: pythonpython-3.xpandas

解决方案


一种可能的解决方案是临时对齐键:

df1.set_index('Key1', inplace=True)
df2.set_index('Key1', inplace=True)
df1 = df1.add(df2['Seasionality'], axis=0)
df1.reset_index(inplace=True)

推荐阅读