我有一个带有“类型”列的数据框,并且想创建一个“组”列,当类型=“ 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
答案 0 :(得分:1)
不清楚如何定义分组,但是可以通过使用cumsum
和eq
来实现所需的输出:
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