如何在Panda中基于多个条件生成列



我想要针对给定问题的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

创建自定义分组,然后使用.transformsum

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

相关内容

  • 没有找到相关文章

最新更新