Python 当组连续出现多个时,如何按组添加数字
我有这样一个数据框:Python 当组连续出现多个时,如何按组添加数字,python,pandas,dataframe,Python,Pandas,Dataframe,我有这样一个数据框: 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(
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(),但如何区分连续条件 与助手一起使用系列
由和创建:
为什么要交换
col1
和col2
?
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