我有一個如下所示的系列: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
提交
取消