Стандартное отклонение данных временного ряда по двум столбцам - PullRequest
0 голосов
/ 27 апреля 2020

У меня есть фрейм данных с двумя столбцами данных за день с индексом временного ряда. Данные образца находятся в 1 минуте, и я хочу создать 5-минутный кадр данных, где 5-минутный интервал будет помечен как ложный, когда стандартное отклонение 5 выборок в соответствующие 5-минутные периоды не отклоняется на 5% от среднее из 5 образцов, и это должно быть выполнено для каждой из 5 минут в день и для каждого столбца. Как показано ниже для столбца X DF1, мы рассчитываем среднее и стандартное отклонение для 5 выборок с 16:01 до 16:05 и видим% (Std / Mean), и то же самое будет сделано для следующих 5 выборок и для столбца у. Тогда DF2 будет заполнен, если% (стандартное / среднее)> 5%, тогда конкретный 5-минутный интервал будет ложным.

enter image description here

1 Ответ

0 голосов
/ 01 мая 2020

Вы можете использовать метод повторной выборки фреймов данных pandas, для которого этот фрейм данных больше всего будет индексироваться с отметкой времени. Вот пример:

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) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...