Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 当组连续出现多个时,如何按组添加数字_Python_Pandas_Dataframe - Fatal编程技术网

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