【发布时间】:2018-10-16 04:13:08
【问题描述】:
df_have
ID AMT REL_NUM HDR_NUM
3 0.02 2.0 2.0
4 2.00 2.0 4.0
5 0.00 1.0 5.0
1 0.00 5.0 1.0
2 19.7 1.0 2.0
df_want
ID AMT REL_NUM HDR_NUM CALCULATION
3 0.02 2.0 2.0 (19.7+0.02+2.00)
4 2.00 2.0 4.0 (2.00)
5 0.00 1.0 5.0 (0.00+0.00)
1 0.00 5.0 1.0 (0.00+19.7)
2 19.7 1.0 2.0 (19.7+0.02+2.00)
尝试创建一个新列“计算”,但逻辑有点棘手。 计算应该是依赖于 ID、REL_NUM 和 HDR_NUM 字段的 AMT 字段的 SUM。
第 1 步 - 检查 HDR_NUM 字段并获取相应的 AMT 值,其中 ID=HDR_NUM 第 2 步 - 添加所有 AMT 字段,其中 REL_NUM= HDR_NUM
对于第一行,这将是对 ID= 2,3 和 4 的 AMT 字段求和。
需要更新的示例代码。我先尝试了一个 groupby,但我无法让它同时满足上述两个步骤:
df_want['CALCULATION']=df_have.groupby(['ID','HDR_NUM'])['AMT'].transform('sum')+ ?
【问题讨论】: