Python 熊猫夜间重新采样

Python 熊猫夜间重新采样,python,pandas,time-series,Python,Pandas,Time Series,我有一个多元时间序列数组。时间序列当前以10秒的间隔聚合: **Time** 2016-01-11 17:00:00 2016-01-11 17:00:10 2016-01-11 17:00:20 我想重新采样,这样我每天可以得到5个小时的时间框架(时间在数据框架中如何显示并不重要,重要的是它是否被正确聚合)。我正在按平均值重新采样 **Time** 2016-01-11 10:00:00-15:00:00 2016-01-12 10:00:00-15:00:00 2016-01-13 10:

我有一个多元时间序列数组。时间序列当前以10秒的间隔聚合:

**Time**
2016-01-11 17:00:00
2016-01-11 17:00:10
2016-01-11 17:00:20
我想重新采样,这样我每天可以得到5个小时的时间框架(时间在数据框架中如何显示并不重要,重要的是它是否被正确聚合)。我正在按平均值重新采样

**Time**
2016-01-11 10:00:00-15:00:00
2016-01-12 10:00:00-15:00:00
2016-01-13 10:00:00-15:00:00
你会怎么做

df.groupby([df['Time'].dt.month, df['Time'].dt.day]).apply(lambda x: x.set_index('Time').resample('5H').mean())
您必须先按时间列的月份和日期分组,然后在5小时(5小时)内对时间列应用重采样,然后再对其他列的平均值进行
.mean()


groupby的原因是你不希望每天一整天都有5小时的间隔,只希望每天有几次。只要您的时间在5小时之内,您每天只能获得一次间隔。

首先,我会过滤我想要的时间段,并按天分组:

# mask the hours we want
hours = df.index.hour
mask = (hours >= 10) & (hours <=14)

# groupby
df[mask].groupby(df[mask].index.floor('D')).mean()
给出:

            Value
Time    
2016-01-11  4.993333
2016-01-12  5.030556
2016-01-13  5.012778

@BenPap你所说的“然后取其余部分的平均值”是什么意思?我会有太多的间隔,我该如何消除不必要的间隔?@QuangHoang是的,这正是我的问题。我的意思是,如果
'00:00-04:59:59'
是第一个块,那么
20:00-23:59:59
是最后一个块?@QuangHoang,这不是我想要的。我想我在问题中说得很清楚。我想要每天15小时的时间间隔。它必须从
10:00:00
开始还是从
00:00:00
开始工作?非常感谢你的回答,但是当我运行这个时,我没有得到我想要的。它给了我每五个小时的平均值。我想要的是10到15小时之间所有数据的平均值。
df=df[(df['Time'].dt.hour>=10)&(df['Time'].dt.hour同一个问题,除了现在它被隔离到第10小时的平均值和第15小时的平均值。我需要10:00到15:00之间的所有时间的平均值。在我的评论代码上将15改为14。我不小心多拉了一个小时。我感觉这会起作用,但我现在收到错误“AttributeError:”DatetimeIndex'object没有属性'dt'
DatetimeIndex
对象不需要通过
dt
访问。我忘记了您的时间已被索引。只需删除@piRSquared所说的所有
.dt
。让我更新一下。
            Value
Time    
2016-01-11  4.993333
2016-01-12  5.030556
2016-01-13  5.012778