根据行条件分配组号[Python]

时间:2019-07-17 20:31:10

标签: python pandas group-by rank

我有一个带有“类型”列的数据框,并且想创建一个“组”列,当类型=“ a”时分配一个组号。

起始数据(忽略索引,从jupyter笔记本复制):

df = pd.DataFrame ({'type':
['a','b','a','b','b','a','b','b','b','b','b','b']})
Index   type
0   a
1   b
2   a
3   b
4   b
5   a
6   b
7   b
8   b
9   b
10  b
11  b

输出应为:


type    grouping
a   1
b   1
a   2
b   2
b   2
a   3
b   3
b   3
b   3
b   3
b   3
b   3


1 个答案:

答案 0 :(得分:1)

不清楚如何定义分组,但是可以通过使用cumsumeq来实现所需的输出:

df['grouping']=df['type'].eq('a').cumsum()

输出:

   type  grouping
0     a         1
1     b         1
2     a         2
3     b         2
4     b         2
5     a         3
6     b         3
7     b         3
8     b         3
9     b         3
10    b         3
11    b         3