我有一个像这样的数据框:
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.agg
与Series
和Series.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/