gpt4 book ai didi

Python Pandas : Cumulative Sum based on multiple conditions

转载 作者:行者123 更新时间:2023-12-02 20:35:54 25 4
gpt4 key购买 nike

我正在计算“第一”位置总计列(下表)的值,并希望使用多个条件来执行此操作。

我希望总“第一”位置能够反射(reflect)特定运动员赢得比赛的次数(截至特定日期)。

例如...见下文,当运动员 = Steve 且位置 = 1 时,Steve 的总第一位置增加 1。我想为所有运动员执行此操作。

enter image description here

我已经尝试过以下...

df['Total 1st Position'] = ((df['Position'] == '1') & (df['Athlete'] == df['Athlete'])).cumsum()

...但这仅返回 df['Position'] == '1' 次数​​的运行总和

我做错了什么?

最佳答案

你可以这样做:

df = your_file

df.loc[(df['Position'] == 1), 'firsts'] = 1
df=df.fillna(0)

df['Total 1st Position'] = (df['firsts']*df['Position']).groupby(df['Athlete']).cumsum()

如果我们通过此运行您的数据框,我们会得到以下结果:

   Race Day Athlete  Position  firsts  Total 1st Position
0 Day 1 Steve 1 1.0 1.0
1 Day 1 Jane 2 0.0 0.0
2 Day 1 Bill 3 0.0 0.0
3 Day 2 Bill 1 1.0 1.0
4 Day 2 Steve 2 0.0 1.0
5 Day 2 Jane 3 0.0 0.0
6 Day 3 Jane 1 1.0 1.0
7 Day 3 Bill 2 0.0 1.0
8 Day 3 Steve 3 0.0 1.0
9 Day 4 Steve 1 1.0 2.0
10 Day 4 Jane 2 0.0 1.0
11 Day 4 Bill 3 0.0 1.0

关于Python Pandas : Cumulative Sum based on multiple conditions,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47192133/

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