我有一个如下所示的系列: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条经验 获得超4个赞
咱们试试吧:
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
	提交
		取消
	