熊猫计算每小时滚动平均值

时间:2019-07-15 20:49:32

标签: python-3.x pandas dataframe

我的数据集df如下所示。这是一个基于minute的数据集。

time, Open, High
2017-01-01 00:00:00, 1.2432, 1.1234
2017-01-01 00:01:00, 1.2432, 1.1234
2017-01-01 00:02:00, 1.2332, 1.1234
2017-01-01 00:03:00, 1.2132, 1.1234
...., ...., ....
2017-12-31 23:59:00, 1.2132, 1.1234

我想为rolling mean列找到每小时的Open,但是应该很灵活,以便我也可以为其他列找到每小时的rolling mean

我做了什么?

我能够找到如下所示的daily rolling average,但如何以小时为单位查找,这样一整天都找不到mean

# Pandas code to find the rolling mean for a single day

df
.assign(1davg=df.rolling(window=1*24*60)['Open'].mean()) 
.groupby(df['time'].dt.date) 
.last() 

请注意,更改此代码行不起作用,因为我已经尝试过:window=1*24*60window=60

1 个答案:

答案 0 :(得分:1)

IIUC:

mask = (df["time"].dt.hour >= 22) | (df["time"].dt.hour <= 2)   
res = df.loc[mask].rolling("1H", on="time")["Open"].mean()