【问题标题】:Question on offsetting when resampling a dataframe重采样数据帧时的偏移问题
【发布时间】:2019-08-16 20:32:49
【问题描述】:

我正在尝试以 1 小时的偏移量每 3 小时重新采样一次数据集。当我尝试它时,时间会偏移 1 小时并根据需要设置为每 3 小时一次,但这些值只是重新采样而不考虑偏移量

我的尝试看起来像这样

df = pd.read_excel('Raw Data.xlsx')
df['TIME'] = pd.to_datetime(df['TIME'])
df['DATA'] = df['DATA'].astype(float) * 1000
hourly = df.resample('H', on='TIME').mean()
thirdly = df.resample('3H', loffset = '1H', on='TIME').mean()

如图所示,我已经能够进行每小时设置,但是当我尝试使用偏移量创建 3 小时重采样时,我得到了这个结果

                    DATA
TIME    
2019-07-29 22:00:00 10.777778
2019-07-30 01:00:00 14.055556
2019-07-30 04:00:00 13.333333
2019-07-30 07:00:00 8.722222
2019-07-30 10:00:00 7.333333
...

当我的原始数据看起来像这样时

TIME    DATA
0   2019-07-29 22:33:34 11.0
1   2019-07-29 22:43:34 10.0
2   2019-07-29 22:53:34 10.0
3   2019-07-29 23:03:34 10.0
4   2019-07-29 23:13:34 10.0
5   2019-07-29 23:23:34 11.0
6   2019-07-29 23:33:34 11.0
7   2019-07-29 23:43:34 12.0
8   2019-07-29 23:53:34 12.0
9   2019-07-30 00:03:34 11.0
10  2019-07-30 00:13:34 12.0
11  2019-07-30 00:23:34 13.0
12  2019-07-30 00:33:34 13.0
13  2019-07-30 00:43:34 14.0
14  2019-07-30 00:53:34 14.0
...

当您手动计算时,您可以看到它所取的平均值实际上是从 21:00-24:00 而不是 22:00-1:00,尽管我在重新采样中进行了偏移。我该如何纠正这个问题?

【问题讨论】:

  • 添加这个有什么改变吗? thirdly = df.resample('3H', loffset = '1H', closed = 'right', on ='TIME').mean()

标签: python pandas dataframe datetime


【解决方案1】:

您需要使用参数base 而不是loffset,它只会调整标签。

试试:

thirdly = df.resample('3H', base = 1, on='TIME').mean()

【讨论】:

    猜你喜欢
    • 2018-08-26
    • 2017-09-19
    • 1970-01-01
    • 1970-01-01
    • 2017-12-12
    • 1970-01-01
    • 1970-01-01
    • 2023-01-29
    • 2018-02-01
    相关资源
    最近更新 更多