我有一個帶有列的數據框。 A 0.0 0.0 0.0 12.0 0.0 0.0 34.0 0.0 0.0 0.0 0.0 11.0我想要這樣的輸出帶有一個計數器列。我希望計數器在非零值后重新啟動。對于每個非零值之后的行,計數器應該再次被插入然后應該遞增。 A Counter 0.0 1 0.0 2 0.0 3 12.0 4 0.0 1 0.0 2 34.0 3 0.0 1 0.0 2 0.0 3 0.0 4 11.0 5
1 回答

MMMHUHU
TA貢獻1834條經驗 獲得超8個贊
讓我們嘗試cumsum創建groupby密鑰,[::-1]這里是顛倒順序
df['Counter'] = df.A.groupby(df.A.ne(0)[::-1].cumsum()).cumcount()+1
Out[442]:
0 1
1 2
2 3
3 4
4 1
5 2
6 3
7 1
8 2
9 3
10 4
11 5
dtype: int64
添加回答
舉報
0/150
提交
取消