[英]Python Pandas: Cumulative Sum based on multiple conditions
创建一个临时列以指示获胜,然后在.cumsum
上使用.groupby
:
df['won'] = (df['Position'] == '1') * 1
df['Total 1st Position'] = df.groupby('Athlete').won.cumsum()
您可以这样操作:
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.