gpt4 book ai didi

python - 一定条件下的聚合

转载 作者:行者123 更新时间:2023-12-01 02:34:40 25 4
gpt4 key购买 nike

我有这个数据框。

df = pd.DataFrame({'day':[1,2,1,4,2,3], 'user':['A','B','B','B','A','A'],
'num_posts':[1,2,3,4,5,6]})

我想要一个新列,其中包含该用户截至该帖子发布日期(不包括当天)的帖子总数。我想要的看起来像这样:

user day num_post total_todate  
A 1 1 0
B 2 2 3
B 1 3 0
B 4 4 5
A 2 5 1
A 3 6 6

有什么想法吗?

最佳答案

您可以按对数据框进行排序,按用户分组,计算num_posts列的累积和,然后将其向下移动1 :

df['total_todate'] = (df.sort_values('day').groupby('user').num_posts
.transform(
lambda p: p.cumsum().shift()
).fillna(0))

df
# day num_posts user total_todate
#0 1 1 A 0.0
#1 2 2 B 3.0
#2 1 3 B 0.0
#3 4 4 B 5.0
#4 2 5 A 1.0
#5 3 6 A 6.0

关于python - 一定条件下的聚合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46385741/

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