将时间聚合到定义的槽

时间:2017-05-31 12:41:41

标签: python pandas

我的数据框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

我希望汇总指标xy,并找出平均“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()

3 个答案:

答案 0 :(得分:3)

您可以将Groupercdef 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')

然后将resample15Tmean

一起使用
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