我有两个数据帧,如下所示(样本数据):
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
如何将Seasonality
添加到df1 (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()
但无法想到上述问题的解决方案。
答案 0 :(得分:4)
一种可能的解决方案是临时对齐键:
df1.set_index('Key1', inplace=True)
df2.set_index('Key1', inplace=True)
df1 = df1.add(df2['Seasionality'], axis=0)
df1.reset_index(inplace=True)