英文:
Python cumsum of rows up until n-1
问题
我正在尝试获取数据框中一列的累积总和,但不包括我们感兴趣的行。数据框按年份拆分。
我已经能够在Excel中完成此操作,下面是我想要实现的效果。
我已经接近实现了,使用以下代码:
df1['CumSum'] = df1.groupby('Year')['Value'].cumsum()
但这会返回下面的结果:
英文:
I am trying to get a cumulative sum of a column in a dataframe for all rows except the row we are interested in. The dataframe is split by year.
I have been able to do this in excel and the below is what I am trying to achieve.
I am close by using
df1['CumSum'] = df1.groupby('Year')['Value'].cumsum()
but this will return
答案1
得分: 0
你可以在组上使用 shift
来将结果向前移动一个位置:
df["CumSum"] = df.groupby("Year", group_keys=False)["Value"].apply(lambda x: x.cumsum().shift(1))
英文:
You can use a shift
on the groups to shift the result by one:
df["CumSum"] = df.groupby("Year", group_keys=False)["Value"].apply(lambda x: x.cumsum().shift(1))
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论