如何根据pandas中的多个条件生成列?

How to generate a column based on multiple conditions in pandas?

我想要 python 给定问题的代码。 这是 CSV 格式的数据集,如下所示:

ID   SCORE
 1     3
 1     5
 1     8
 1     1
 2     6
 2     0
 2     3
 1     6
 1     4

从这个数据集中,我想创建一个名为“OUTPUT”的列。条件是当ID=1SCORE的每一行都应该添加到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