Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何计算单元格不显示的次数';熊猫没有变化吗?_Python_Pandas - Fatal编程技术网

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