我有一个像这样的数据框:

df
col1    col2
 12       A
 14       A
 22       B
 24       C
 20       A
 18       B
 16       B


现在,如果col2值连续多次出现,我想在col2的基础上添加col1的值。最终的数据帧应如下所示:

col1    col2
 A       26
 B       22
 C       24
 A       20
 B       34


我可以使用groupby()但如何区分连续条件?

最佳答案

GroupBy.aggSeriesSeries.ne创建的助手Series.shift一起使用:

s = df['col2'].ne(df['col2'].shift()).cumsum()
df = df.groupby(s).agg({'col2':'first', 'col1':'sum'}).reset_index(drop=True)
print (df)
  col2  col1
0    A    26
1    B    22
2    C    24
3    A    20
4    B    34

关于python - 当使用 Pandas 连续出现多个群组时,如何明智地对群组进行加法运算,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56035867/

10-15 08:00