当连续发生多个组时,如何按组添加数字

2024-03-29 05:33:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这样一个数据框:

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

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

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

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


Tags: 数据df条件基础col2col1区分groupby
1条回答
网友
1楼 · 发布于 2024-03-29 05:33:54

^{}与由^{}^{}^{}创建的助手Series一起使用:

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

相关问题 更多 >