【发布时间】:2021-10-28 20:22:55
【问题描述】:
我正在寻找一些条件下的累积值:我只想添加 Condition == New 的值,并按名称对累积值进行分组。假设我有数据框,df:
Name | Condition | Value
A | New | 5
A | Not New | 7
A | New | 15
B | Old | 20
B | New | 14
B | Old | 3
我正在寻找输出:
Name | Condition | Value | Cumulative Value
A | New | 5 | 5
A | Not New | 7 | 5
A | New | 15 | 20
B | Old | 20 | 0
B | New | 14 | 14
B | Old | 3 | 14
对于Condition == New 的每个条目,我将当前值添加到当前累积值中。否则,累积值应保持不变。当一个新名称出现时,如果 Condition 的第一个条目是“旧”,或者如果 Condition 的第一个条目是“新”,我将累积值重置为零。
我被代码卡住了
df['Cumulative Value'] = df.groupby(['Name'])['Value'].cumsum()
这是对名称进行分组并计算所有累积总和。不知道如何继续添加额外的条件来检查条件列的字符串,如果条件不匹配,则保持累积值不变。
【问题讨论】:
标签: python pandas group-by conditional-statements cumsum