为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

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

1 回答

?
温温酱

TA贡献1752条经验 获得超4个赞

您可以使用 pandas 数据帧的 resample 方法,因为数据帧大多数是带有时间戳的索引。这里有一个例子:


import pandas as pd

import numpy as np

dates = 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 right

w = '3d'

threshold = 1 # here goes your threshold for flagging the ration of standard deviation and mean

x=df.resample(w, label=lbl).std()['X'] / df.resample(w, label=lbl).mean()['X'] > threshold

y=df.resample(w, label=lbl).std()['Y'] / df.resample(w, label=lbl).mean()['Y'] > threshold


DF2 = pd.concat([x,y], axis=1) 


查看完整回答
反对 回复 2022-10-25
  • 1 回答
  • 0 关注
  • 156 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信