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

如何根据周期性和连续列对数据帧重新编号?

如何根据周期性和连续列对数据帧重新编号?

繁星淼淼 2023-03-16 09:06:53
原始数据框df是:     type month0       a     11       b     12       c     13       e     54       a     55       c     56       b     97       e     98       a     99       e     910      a     111      a     1请注意, 被month安排在连续的段中并定期重复。段的大小并不总是相同的。我想num为每个连续的月份添加一列,再次从 0 重新编号。不应更改原始序列的顺序。预期的输出应该是:     type month num0       a     1   01       b     1   12       c     1   23       e     5   04       a     5   15       c     5   26       b     9   07       e     9   18       a     9   29       e     9   310      a     1   011      a     1   1我不能使用groupby,因为 的值month重复但分开。
查看完整描述

1 回答

?
摇曳的蔷薇

TA贡献1793条经验 获得超6个赞

首先,我们创建groupswith 检查下一行是否等于上一行 withSeries.shift然后是cumsum布尔值。


然后我们对组进行分组并使用cumcount


grps = df['month'].ne(df['month'].shift()).cumsum()

df['num'] = df.groupby(grps).cumcount()


   type  month  num

0     a      1    0

1     b      1    1

2     c      1    2

3     e      5    0

4     a      5    1

5     c      5    2

6     b      9    0

7     e      9    1

8     a      9    2

9     e      9    3

10    a      1    0

11    a      1    1


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

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号