目前,我正在处理不同科目的每周数据,但可能会有一些没有数据的长时间连续记录,所以,我想做的是,每id
保持连续几周最长的连续记录。我的数据如下:
id week
1 8
1 15
1 60
1 61
1 62
2 10
2 11
2 12
2 13
2 25
2 26
我的预期产出是:
^{pr2}$我有点接近,试图在week
==week.shift()+1
时用1标记。问题是这种方法不会标记连续中的第一次出现,也无法过滤最长的一次:
df.loc[ (df['id'] == df['id'].shift())&(df['week'] == df['week'].shift()+1),'streak']=1
根据我的例子,这将带来:
id week streak
1 8 nan
1 15 nan
1 60 nan
1 61 1
1 62 1
2 10 nan
2 11 1
2 12 1
2 13 1
2 25 nan
2 26 1
有什么想法可以实现我想要的吗?在
虽然不如“斯科特伯顿”简洁,但我喜欢这种方法
试试这个:
输出:
^{pr2}$相关问题 更多 >
编程相关推荐