我的数据框df
有几周的2
分钟分辨率数据:
df.dtypes
time_stamp datetime64[ns]
Day_name object
x int64
y int64
df.head
time_stamp Day_name x y
0 2017-05-17 14:28:35 Wednesday 100 200
1 2017-05-17 14:30:32 Wednesday 300 400
我希望汇总指标x
和y
,并找出平均“15”分钟时段的平均值。我最初有一个纪元指标,但我已将其转换为上面显示的datetime
。
time_stamp Day_name x y 15_min_slot
0 2017-05-17 14:28:35 Wednesday 100 200 14:15
1 2017-05-17 14:30:32 Wednesday 300 400 14:30
我该怎么做?
我可以通过以下方式找到小时:
df['hour'] = df['time_stamp'].dt.hour
df['minute'] = df['time_stamp'].dt.minute
我最终会做的是:
output = df.groupby(['15_min_slot'],as_index=False)['x'].mean()
答案 0 :(得分:3)
您可以将Grouper
与cdef long[:]
参数结合使用,即:
freq
答案 1 :(得分:1)
让我们使用resample
:
首先为您的数据框创建datetimeindex
df = df.set_index('time_stamp')
df.index = pd.to_datetime(df.index,format='%Y-%m-%d %H:%M:%S')
然后将resample
与15T
和mean
:
df.resample('15T').mean()
输出:
x y
time_stamp
2017-05-17 14:15:00 100 200
2017-05-17 14:30:00 300 400
答案 2 :(得分:0)
您可以在
中使用df.resample()
df.resample('15T').mean()
可在此处找到选项列表: http://pandas.pydata.org/pandas-docs/stable/timeseries.html#offset-aliases