【发布时间】:2018-02-11 14:44:31
【问题描述】:
我有两个数据框 df1 - 它包含按数值 A、B 和 C 分组的项目的“分组库存”。对于每个项目都有一个总和列,它应该反映我拥有的所有项目的总价格那个特定的类型。最初我将 sum 列设置为零。
df2 是我拥有的 A、B、C 和项目价格的项目列表。
df1(初始库存):
A B C SUM
1 1 1 0
1 1 2 0
1 2 2 0
2 2 2 0
df2(项目列表):
A B C PRICE
2 2 2 30
1 1 2 100
1 1 2 110
1 1 2 105
所以我的代码应该将 df1 转换为:
df1(预期输出):
A B C SUM
1 1 1 0
1 1 2 315
1 2 2 0
2 2 2 30
解释: 我的项目列表 (df2) 包含一个编码为 2,2,2 的项目,其值为 30,并包含三个编码为 1,1,2 的项目,其值为100 + 110 + 105 = 315。所以我更新了库存表 df1,以反映我对编码为 2、2、2 的项目的总值为 30,而对编码为 1、1、2 的项目的总值为 315。对于编码为 1,1,1 和 1,2,2 的项目,我的值为 0 - 因为在我的项目列表中找不到它们。
最有效的方法是什么?
我宁愿不使用循环,因为 df1 是 720 行,而 df2 是 10,000 行。
【问题讨论】:
-
您能详细解释一下您是如何得出这个结果的吗?
-
@Tai Sure。我的项目列表 (df2) 包含一个编码为 2,2,2 的项目,其值为 30,并包含三个编码为 1,1,2 的项目,其值为 100 + 110 + 105 = 315。所以我更新了库存表 df1,以反映我对编码为 2、2、2 的项目的总值为 30,而对编码为 1、1、2 的项目的总值为 315。对于编码为 1,1,1 和 1,2,2 的项目,我的值为 0 - 因为在我的项目列表中找不到它们。
-
请通过编辑您的问题提供更多信息。人们往往不阅读 cmets。