我想要给定问题的python代码。 这是 CSV 格式的数据集,如下所示:
ID SCORE
1 3
1 5
1 8
1 1
2 6
2 0
2 3
1 6
1 4
从这个数据集中,我想创建一个名为“ OUTPUT ”的列。条件是当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
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句