我有一个如下所示的系列: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
添加回答
举报
0/150
提交
取消