Pandas:条件滚动块计数

我有一个如下所示的系列:


Time Step

0   0

1   1

2   2

3   2

4   2

5   3

6   0

7   1

8   2

9   2

10  2

11  3

我想使用 Pandas 对包含 step = 2 的每个时间块执行条件滚动计数,并将计数输出到新列。我无法弄清楚如何将每个步骤的顺序运行计算为单个块。输出应如下所示:


Time Step Run_count

0   0 

1   1

2   2     RUN1

3   2     RUN1

4   2     RUN1

5   3

6   0

7   1

8   2     RUN2

9   2     RUN2

10  2     RUN2

11  3


慕桂英546537
浏览 112回答 1
1回答

Helenr

咱们试试吧:s = df.Step.where(df.Step.eq(2))df['Run_count'] = s.dropna().groupby(s.isna().cumsum()).ngroup()+1输出:    Time  Step  Run_count0      0     0        NaN1      1     1        NaN2      2     2        1.03      3     2        1.04      4     2        1.05      5     3        NaN6      6     0        NaN7      7     1        NaN8      8     2        2.09      9     2        2.010    10     2        2.011    11     3        NaN
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python