Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/352.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_Vectorization - Fatal编程技术网

Python 以矢量化方式计算特定连续相等值的数量

Python 以矢量化方式计算特定连续相等值的数量,python,pandas,vectorization,Python,Pandas,Vectorization,假设我们有以下数据帧: In [1]: import pandas as pd import numpy as np df = pd.DataFrame([0, 1, 0, 0, 1, 1, 0, 1, 1, 1], columns=['in']) df Out[1]: in 0 0 1 1 2 0 3 0 4 1 5 1 6 0 7 1 8 1 9 1 如何以矢量化的方式计算熊猫中连续数?我希望得到这样的结果: in out 0

假设我们有以下数据帧:

In [1]:
import pandas as pd
import numpy as np

df = pd.DataFrame([0, 1, 0, 0, 1, 1, 0, 1, 1, 1], columns=['in'])
df
Out[1]: 
   in
0   0
1   1
2   0
3   0
4   1
5   1
6   0
7   1
8   1
9   1
如何以矢量化的方式计算熊猫中连续数?我希望得到这样的结果:

   in  out
0   0    0
1   1    1
2   0    0
3   0    0
4   1    1
5   1    2
6   0    0
7   1    1
8   1    2
9   1    3

类似于在特定条件下重置的矢量化求和运算。

您可以执行类似操作(贷记到:):


公平竞争。我的头撞了这个40分钟:P@Ffisegydd这里也一样:-),但我有一种感觉,有人会要求使用itertools.groupby相当于某个地方的熊猫groupy。是的,我知道我想要它,只是从来都懒得用谷歌搜索它>\u@AshwiniChaudhary你会做一个拉式请求,将它添加到烹饪书中吗,在本节的某个地方:
>>> df['in'].groupby((df['in'] != df['in'].shift()).cumsum()).cumsum()
0    0
1    1
2    0
3    0
4    1
5    2
6    0
7    1
8    2
9    3
dtype: int64