猿问

两列时间序列数据的标准差

我有一个数据框,其中包含一天的两列数据,并带有时间序列索引。样本数据在 1 分钟内,我想创建一个 5 分钟的数据框,当相应 5 分钟内 5 个样本的标准偏差不偏离 5% 时,5 分钟间隔将被标记为假5 个样本的平均值,这需要在一天中的每个 5 分钟和每一列中执行。如下所示,对于 DF1 列 X,我们计算了 16:01 到 16:05 的 5 个样本的平均值和标准偏差,我们看到了 %(Std/Mean),接下来的 5 个样本和列将执行相同的操作是的。然后如果 %(std/Mean)>5% 将填充 DF2,那么特定的 5 分钟间隔将是错误的。


神不在的星期二
浏览 157回答 1
1回答

温温酱

您可以使用 pandas 数据帧的 resample 方法,因为数据帧大多数是带有时间戳的索引。这里有一个例子:import pandas as pdimport numpy as npdates = pd.date_range('1/1/2020', periods=30)df = pd.DataFrame(np.random.randn(30,2), index=dates, columns=['X','Y'])df.head()lbl = 'right' # set the label of the window index to the value of the rightw = '3d'threshold = 1 # here goes your threshold for flagging the ration of standard deviation and meanx=df.resample(w, label=lbl).std()['X'] / df.resample(w, label=lbl).mean()['X'] > thresholdy=df.resample(w, label=lbl).std()['Y'] / df.resample(w, label=lbl).mean()['Y'] > thresholdDF2 = pd.concat([x,y], axis=1) 
随时随地看视频慕课网APP

相关分类

Python
我要回答