【发布时间】:2019-04-05 23:35:01
【问题描述】:
我一直在努力尝试在连续几周的第一周获得 DataFrame 中的特定 ID,如下所示:
week id
1 1
2 1
3 1
6 1
7 1
8 1
3 2
4 2
因此,对于 id 1,有连续三周 (1-3),然后是连续三周 (6-8),对于 id 2,有 2 (3-4)。所以,我想要的输出是:
week id first_week
1 1 1
2 1 1
3 1 1
6 1 6
7 1 6
8 1 6
3 2 3
4 2 3
我可以用这个来计算连续的周数:
df.groupby(['id',df['week'].diff(-1).ne(-1).shift().bfill().cumsum()]).transform('count')
但我无法找到第一周(我想构建一个新的 id 来添加连续周的连续性从哪一周开始)
【问题讨论】: