gpt4 book ai didi

python - 重新采样/时间分组到特定的时间跨度/周期

转载 作者:太空宇宙 更新时间:2023-11-03 20:14:25 27 4
gpt4 key购买 nike

我尝试将一些数据分组到每四周一次的存储桶中,并使用 pd.Grouper(key='created_at', freq='4W')。我希望这些组是这样的,如果我有从 2019-08-26 到 2019-10-20 的 8 周数据,第一组的范围是 2019-08-26 到 2019-09-22,第二组的范围是 2019-08-26 到 2019-09-22组范围为 2019-09-23 至 2019-10-20。然而,当使用石斑鱼时,它不会以这种方式分组,而是锚定到第一个星期日并从那里计算四个星期,产生如下输出:

created_at
2019-09-01 317
2019-09-29 990
2019-10-27 645
Freq: 4W-SUN, dtype: int64

而不是:

created_at
2019-08-26 1048
2019-09-23 904
Freq: 4W-SUN, dtype: int64

我尝试过的另一个选项是使用 pd.Timedelta(weeks=4) 作为频率,如下所示:

df.groupby(pd.Grouper(key='created_at', freq=pd.Timedelta(weeks=4)).size()

但是,只有当数据中所有日期都可用时,这才有效。例如,如果数据直到 2019 年 8 月 30 日才开始,则组标签会有所不同,因为它正在计算最早日期的增量。我正在考虑创建一个自定义偏移对象,但不确定这是否是正确的方向。

原始数据大致如下:

                created_at
id
4324856 2019-08-26 12:38:51
4325472 2019-08-26 13:18:07
4325974 2019-08-26 13:47:09
4326205 2019-08-26 13:56:27
4326296 2019-08-26 13:57:35

带有与当前问题无关的附加列。

最佳答案

尝试在pd.Grouper()中添加参数close='left' 。默认情况下,区间的闭端是'right'

df.groupby(pd.Grouper(key='created_at', freq='4W', closed='left')).size()

关于python - 重新采样/时间分组到特定的时间跨度/周期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58543193/

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