我有一个带有列的数据框。 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
提交
取消