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

我有一个带有列的数据框。


  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


函数式编程
浏览 116回答 1
1回答

MMMHUHU

让我们尝试cumsum创建groupby密钥,[::-1]这里是颠倒顺序df['Counter'] = df.A.groupby(df.A.ne(0)[::-1].cumsum()).cumcount()+1Out[442]: 0     11     22     33     44     15     26     37     18     29     310    411    5dtype: int64
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python