python - 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
我们如何添加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()
但想不出解决上述问题的办法。
解决方案
一种可能的解决方案是临时对齐键:
df1.set_index('Key1', inplace=True)
df2.set_index('Key1', inplace=True)
df1 = df1.add(df2['Seasionality'], axis=0)
df1.reset_index(inplace=True)
推荐阅读
- flutter - 断言失败:在 Flutter 中使用 Navigator.popUntil() 时 !_debugLocked 不正确
- javascript - javascript 上的评论结构是什么?
- python - 获取缩短列表的numpy数组?
- c# - 在 HoloLens 上部署 Tensorflow 训练模型
- html - 如何让div背景滑入?
- visual-studio - VS 2019 更新后尝试构建 Xamarin.Android 时出错
- javascript - 如何使用时刻动态从周数中找到周开始日期
- javascript - Foreach 仅循环通过表格的最后一列(ES6)
- c - C中sendto()和recvfrom()之间的形式参数区别
- javascript - 如何防止 Bootstrap Modal 自动关闭?