Python 如何计算单元格不显示的次数';熊猫没有变化吗?
使用以下数据:Python 如何计算单元格不显示的次数';熊猫没有变化吗?,python,pandas,Python,Pandas,使用以下数据: A false false false false true false false true true true 我希望生成以下输出: A B false 1 false 2 false 3 false 4 true 1 false 1 false 2 true 1 true 2 true 3 因此,每次更改时,我都会重新启动计数器,然后只要内容不变,就递增 我可以通过循环(伪代码)来实现:
A
false
false
false
false
true
false
false
true
true
true
我希望生成以下输出:
A B
false 1
false 2
false 3
false 4
true 1
false 1
false 2
true 1
true 2
true 3
因此,每次更改时,我都会重新启动计数器,然后只要内容不变,就递增
我可以通过循环(伪代码)来实现:
但是有没有一个像熊猫一样的方法来实现这一点,因为循环会非常缓慢 您可以尝试以下方法:
df['B'] = df.groupby(df.A.ne(df.A.shift()).cumsum()).cumcount()+1
A B
0 False 1
1 False 2
2 False 3
3 False 4
4 True 1
5 False 1
6 False 2
7 True 1
8 True 2
9 True 3
df['B'] = df.groupby(df.A.ne(df.A.shift()).cumsum()).cumcount()+1
A B
0 False 1
1 False 2
2 False 3
3 False 4
4 True 1
5 False 1
6 False 2
7 True 1
8 True 2
9 True 3