gpt4 book ai didi

python - 在 DataFrame 中获取连续几周的第一周

转载 作者:太空狗 更新时间:2023-10-30 02:07:03 25 4
gpt4 key购买 nike

我一直在努力为 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,添加连续几周的连续星期)

最佳答案

groupby 获取 diff 和条件分配,然后只需 ffill nan

df.loc[df.groupby('id').week.diff().ne(1),'fw']=df.week
df.fw=df.fw.ffill()
df
Out[158]:
week id fw
0 1 1 1.0
1 2 1 1.0
2 3 1 1.0
3 6 1 6.0
4 7 1 6.0
5 8 1 6.0
6 3 2 3.0
7 4 2 3.0

关于python - 在 DataFrame 中获取连续几周的第一周,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55538847/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com