gpt4 book ai didi

python - 如何从特定时间开始按周分组

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

我有希望按周分组的数据。

我已经能够使用以下方法做到这一点

Data_Frame.groupby([pd.Grouper(freq='W')]).count()

这将以

的形式创建一个数据框
2018-01-07  ...

2018-01-14 ...

2018-01-21 ...

太棒了。但是我需要它在 06:00 开始,所以像

2018-01-07 06:00:00 ...

2018-01-14 06:00:00 ...

2018-01-21 06:00:00 ...

我知道我可以将我的数据移动 6 小时,但这似乎是一种欺骗,我很确定 Grouper 具有执行此操作的功能(指定何时开始分组的某种方式)。

我希望有人知道这样做的好方法。

非常感谢

编辑:

我正在尝试更多地在内置功能中使用 python,因为它通常工作得更好、更一致。我还将数据本身变成一个图表,时间戳作为 y 列,我希望时间戳实际反射(reflect)数据,而无需某些方法,例如将所有内容按 6 小时分组,然后将所有内容重新移位 6 小时以获得正确的时间戳。

最佳答案

使用双 shift :

np.random.seed(456)

idx = pd.date_range(start = '2018-01-07', end = '2018-01-09', freq = '2H')
df = pd.DataFrame({'a':np.random.randint(10, size=25)}, index=idx)
print (df)
a
2018-01-07 00:00:00 5
2018-01-07 02:00:00 9
2018-01-07 04:00:00 4
2018-01-07 06:00:00 5
2018-01-07 08:00:00 7
2018-01-07 10:00:00 1
2018-01-07 12:00:00 8
2018-01-07 14:00:00 3
2018-01-07 16:00:00 5
2018-01-07 18:00:00 2
2018-01-07 20:00:00 4
2018-01-07 22:00:00 2
2018-01-08 00:00:00 2
2018-01-08 02:00:00 8
2018-01-08 04:00:00 4
2018-01-08 06:00:00 8
2018-01-08 08:00:00 5
2018-01-08 10:00:00 6
2018-01-08 12:00:00 0
2018-01-08 14:00:00 9
2018-01-08 16:00:00 8
2018-01-08 18:00:00 2
2018-01-08 20:00:00 3
2018-01-08 22:00:00 6
2018-01-09 00:00:00 7

#freq='D' for easy check, in original use `W`
df1 = df.shift(-6, freq='H').groupby([pd.Grouper(freq='D')]).count().shift(6, freq='H')
print (df1)
a
2018-01-06 06:00:00 3
2018-01-07 06:00:00 12
2018-01-08 06:00:00 10

关于python - 如何从特定时间开始按周分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53537273/

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