以向量化方式计算大pandas中特定连续相等值的数量

假设我们有以下pandas DataFrame:

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

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

回答:

您可以执行以下操作(贷方:如何使用系列/数据框模拟itertools.groupby):

>>> 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

以上是 以向量化方式计算大pandas中特定连续相等值的数量 的全部内容, 来源链接: utcz.com/qa/411477.html

回到顶部