gpt4 book ai didi

python-3.x - 使用 pandas groupby 获取组子集的总和

转载 作者:行者123 更新时间:2023-12-04 08:58:19 24 4
gpt4 key购买 nike

我有一个如图所示的数据框。使用 python,我想获得每个 'Id' 组的 'Value' 总和,直到第一次出现 'Stage' 12。

df = pd.DataFrame({'Id':[1,1,1,2,2,2,2],
'Date': ['2020-04-23', '2020-04-25', '2020-04-28', '2020-04-20', '2020-05-01', '2020-05-05', '2020-05-12'],
'Stage': [11, 12, 15, 11, 14, 12, 12],
'Value': [5, 4, 6, 12, 2, 8, 3]})

Id Date Stage Value
1 2020-04-23 11 5
1 2020-04-25 12 4
1 2020-04-28 15 6
2 2020-04-20 11 12
2 2020-05-01 14 2
2 2020-08-05 12 8
2 2020-05-12 12 3
我想要的输出:
Id  Value
1 9
2 22
如果有人可以提供帮助,将不胜感激。

最佳答案

让我们尝试使用 groupby transform idxmax过滤数据帧,然后再做一轮 groupby

idx = df['Stage'].eq(12).groupby(df['id']).transform('idxmax')
output = df[df.index <= idx].groupby('id')['Value'].sum().reset_index()

细节 transformidxmax将为所有 groupby 返回第一个与 12 匹配的索引行,那么我们需要过滤 dfindex小于获取数据,直到前 12 个出现。

关于python-3.x - 使用 pandas groupby 获取组子集的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63697647/

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