PANDAS DataFrames在不平衡的时间 /分钟内重新置换



搜索它,但没有找到解决方案 - 如果已经有一个问题要问,但是我会感谢链接

我有一个数据框(DF):

timestamp          value
2016-03-11 07:37:40 24.6018
2016-03-11 07:37:45 24.6075
2016-03-11 07:37:50 24.599
2016-03-11 07:37:55 24.6047
2016-03-11 07:38:00 24.5905
2016-03-11 07:38:05 24.551
...

重要的是,不像07:40:00这样的偶数启动,而是07:37:40(可能是任何时候),我想重新置换它 - 计算超过的平均值,例如5分钟用最后的时间戳标记为二手线。第一次时间戳2016-03-11 07:37:40原始数据的期望结果:

2016-03-11 07:42:40 24.608
2016-03-11 07:47:40 24.605
2016-03-11 07:52:40 24.59
...

我尝试使用

df.resample('5T',how='mean',label='right')

df.resample('300S',how='mean',label='right')

以相同的结果:

2016-03-11 07:40:00 24.618
2016-03-11 07:45:00 24.675
2016-03-11 07:50:00 24.599
...

它在整个分钟内计算。我发现没有选择可以纠正此。看到"基础"可能是一种选择,但似乎不是很迭代或编码不错。

任何帮助将不胜感激。

检查一下我使用的滚动,该滚动将在给定的频率上滚动并执行数学操作,例如总和,均值等。在此您需要知道启动和结束DateTime值。

代码:

df.timestamp=pd.to_datetime(df.timestamp)
df.set_index('timestamp',inplace=True)
df = df.rolling('15s').mean()
mask = pd.date_range('2016-03-11 07:37:40','2016-03-11 07:38:05',freq='10S')
df = df.loc[mask]
df
                        value
2016-03-11 07:37:40 24.601800
2016-03-11 07:37:50 24.602767
2016-03-11 07:38:00 24.598067

在滚动和我使用的date_range中使用您所需的窗口,而不是" 15s"。让我知道这对您有用。

最新更新