【发布时间】:2020-05-04 10:25:58
【问题描述】:
我正在使用现有的解决方案来尝试生成在某个值(在本例中 >= 16)后重置的累积总和。目前我得到以下输出,但有些情况下 cumsum 仍然大于 16。
Size cumsum
8 8
8 16 ---correct
8 8
8 16 ---correct
7 7
6 13 (should be reset here since next value causes cumsum >16)
7 20 ---incorrect
6 6
5 11
2 13
我使用的代码是:
df = pd.DataFrame({'Size':[8,8,8,8,7,6,7,6,5,2]})
ls = []
cumsum = 0
last_reset = 0
for _, row in df.iterrows():
cumsum = cumsum + row.Size
ls.append(cumsum)
if cumsum >= 16:
last_reset = cumsum
cumsum = 0
df['cumsum'] = ls
任何想法如何纠正这个问题?
【问题讨论】:
-
我认为它比@FBruzzesi 更复杂
-
这能回答你的问题吗:stackoverflow.com/questions/57510604/…
标签: python pandas numpy cumsum