gpt4 book ai didi

python - 重新采样 Pandas 时间序列以获得 bin 名称的结束时间戳?

转载 作者:太空宇宙 更新时间:2023-11-04 04:49:32 24 4
gpt4 key购买 nike

我生成一个 5 分钟时间序列样本:

index = pd.date_range('1/1/2000', periods=10, freq='5T')
data=range(10)
ser = pd.Series(data, index=index)

它的样子:

2000-01-01 00:00:00    0.0
2000-01-01 00:05:00 1.0
2000-01-01 00:10:00 2.0
2000-01-01 00:15:00 3.0
2000-01-01 00:20:00 4.0
2000-01-01 00:25:00 5.0
2000-01-01 00:30:00 6.0
2000-01-01 00:35:00 7.0
2000-01-01 00:40:00 8.0
2000-01-01 00:45:00 9.0
Freq: 5T, dtype: float64

我需要什么

我想将这个时间序列变成一个 15 分钟的时间序列,并让每个 15 分钟的值成为在该 15 分钟期间观察到的 5 分钟值的平均值,即

2000-01-01 00:15:00    2.0   # i.e. mean(1, 2, 3)
2000-01-01 00:30:00 5.0 # i.e. mean(4, 5, 6)
2000-01-01 00:45:00 8.0 # i.e. mean(7, 8, 9)

我尝试过的事情

如果我将这些数据重新采样到 15 分钟的桶中并调用均值,我得到:

ser.resample('15T').mean()

2000-01-01 00:00:00 1.0
2000-01-01 00:15:00 4.0
2000-01-01 00:30:00 7.0
2000-01-01 00:45:00 9.0

这不是在计算我想要的方法。如果我将 closed='right' 添加到重采样调用中,我会更接近我想要的值,但时间戳不正确。

ser.resample('15T', closed='right').mean()
1999-12-31 23:45:00 0.0
2000-01-01 00:00:00 2.0
2000-01-01 00:15:00 5.0
2000-01-01 00:30:00 8.0
Freq: 15T, dtype: float64

有什么建议吗?

最佳答案

您可以在 resample 中使用 label 参数,

ser.resample('15T', label='right', closed='right').mean()

这会将标签从左侧(默认)移动到重采样窗口的右侧。这比我有点笨拙的评论更简洁。

关于python - 重新采样 Pandas 时间序列以获得 bin 名称的结束时间戳?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48703761/

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