为了账号安全,请及时绑定邮箱和手机立即绑定

当列具有非零值时重置计数器

当列具有非零值时重置计数器

函数式编程 2023-06-20 13:46:59
我有一个带有列的数据框。  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


查看完整回答
反对 回复 2023-06-20
  • 1 回答
  • 0 关注
  • 103 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信