Python Pandas:条件滚动计数

Jac*_*ack 2 python series dataframe pandas

这是我的输入数据框

type
a   
a   
a   
a   
a   
b   
b   
a   
a   
a
Run Code Online (Sandbox Code Playgroud)

这是我的预期输出

type,   id
a   ,   1
a   ,   2
a   ,   3
a   ,   4
a   ,   5
b   ,   5
b   ,   5
a   ,   6
a   ,   7
a   ,   8
Run Code Online (Sandbox Code Playgroud)

我需要ID基于'type'列生成列。我有两种类型'a''b'..,只要'a'我想增加ID。如果'b',请保持先前状态'a' ID。如何在Pandas数据框中执行此操作?

jpp*_*jpp 6

您可以计算布尔序列的累积总和,以指示序列何时等于值:

df['id'] = df['type'].eq('a').cumsum()
Run Code Online (Sandbox Code Playgroud)