为了账号安全,请及时绑定邮箱和手机立即绑定

Pandas:条件滚动块计数

Pandas:条件滚动块计数

慕桂英546537 2023-06-27 18:31:13
我有一个如下所示的系列:Time Step0   01   12   23   24   25   36   07   18   29   210  211  3我想使用 Pandas 对包含 step = 2 的每个时间块执行条件滚动计数,并将计数输出到新列。我无法弄清楚如何将每个步骤的顺序运行计算为单个块。输出应如下所示:Time Step Run_count0   0 1   12   2     RUN13   2     RUN14   2     RUN15   36   07   18   2     RUN29   2     RUN210  2     RUN211  3
查看完整描述

1 回答

?
Helenr

TA贡献1780条经验 获得超3个赞

咱们试试吧:


s = df.Step.where(df.Step.eq(2))

df['Run_count'] = s.dropna().groupby(s.isna().cumsum()).ngroup()+1

输出:


    Time  Step  Run_count

0      0     0        NaN

1      1     1        NaN

2      2     2        1.0

3      3     2        1.0

4      4     2        1.0

5      5     3        NaN

6      6     0        NaN

7      7     1        NaN

8      8     2        2.0

9      9     2        2.0

10    10     2        2.0

11    11     3        NaN


查看完整回答
反对 回复 2023-06-27
  • 1 回答
  • 0 关注
  • 111 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信