gpt4 book ai didi

python - groupby cumsum 排序数据框

转载 作者:行者123 更新时间:2023-12-04 03:30:23 25 4
gpt4 key购买 nike

我想按列对数据框进行分组,然后对按第一列降序排列的其他数据框应用 cumsum

df1:
id PRICE DEMAND
0 120 10
1 232 2
2 120 3
3 232 8
4 323 5
5 323 6
6 323 2

df2:
id PRICE DEMAND
0 323 13
1 232 23
2 120 36

我用两条指令完成,但我觉得只用一次总和就可以完成

data = data.groupby('PRICE',as_index=False).agg({'DEMAND': 'sum'}).sort_values(by='PRICE', ascending=False)
data['DEMAND'] = data['DEMAND'].cumsum()

最佳答案

在我看来,你所拥有的一切都很好。但是,如果您想将所有内容链接在一起,请先使用 sort,然后使用 sort=False 进行 groupby,这样顺序就不会改变。然后您可以在组内求和cumsum结果系列

(df.sort_values('PRICE', ascending=False)
.groupby('PRICE', sort=False)['DEMAND'].sum()
.cumsum()
.reset_index())

PRICE DEMAND
0 323 13
1 232 23
2 120 36

另一种选择是排序,然后是cumsum,然后是drop_duplicates:

(df.sort_values('PRICE', ascending=False)
.set_index('PRICE')
.DEMAND.cumsum()
.reset_index()
.drop_duplicates('PRICE', keep='last'))

PRICE DEMAND
2 323 13
4 232 23
6 120 36

关于python - groupby cumsum 排序数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66988105/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com