我想要针对给定问题的python代码 以下是CSV格式的数据集,如下所示:
ID SCORE
1 3
1 5
1 8
1 1
2 6
2 0
2 3
1 6
1 4
从这个数据集中,我想创建一个名为">输出";。条件是当ID=1时,SCORE的每一行都应相加,直到ID=2,并且总和应插入OUTPUT列中。当ID=2时,将应用类似的逻辑。这是我想要的输出:
ID SCORE OUTPUT
1 3 17
1 5 17
1 8 17
1 1 17
2 6 9
2 0 9
2 3 9
1 6 10
1 4 10
创建自定义分组,然后使用.transform
和sum
df['OUTPUT'] = df.groupby(df['ID'].ne(df['ID'].shift())
.cumsum())['SCORE'].transform('sum')
print(df)
ID SCORE OUTPUT
0 1 3 17
1 1 5 17
2 1 8 17
3 1 1 17
4 2 6 9
5 2 0 9
6 2 3 9
7 1 6 10
8 1 4 10