大熊猫基于连续相同的行进行聚合

时间:2020-03-23 22:07:39

标签: pandas aggregate

假设我有此数据框,并且我想基于具有相同数量的标签来汇总和累加列“ a”上的值。

    a  label
0   1    0
1   3    0
2   5    0
3   2    1
4   2    1
5   2    1
6   3    0
7   3    0
8   4    1

所需的结果将是:

    a  label
0   9    0
1   6    1
2   6    0
3   4    1

不是这个:

    a  label
0   15    0
1   10    1

1 个答案:

答案 0 :(得分:2)

IIUC

s=df.groupby(df.label.diff().ne(0).cumsum()).agg({'a':'sum','label':'first'})
s
Out[280]: 
       a  label
label          
1      9      0
2      6      1
3      6      0
4      4      1