我有一个数据框,其中包含一天的两列数据,并带有时间序列索引。样本数据在 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)
添加回答
举报
0/150
提交
取消