У меня есть пара данных с отметкой времени, значения и качества. Флаг значения и качества отсутствует для некоторых временных меток и должен быть заполнен зависимостью от окружающих данных. Т.е.Заполнение отсутствующих данных различными способами
- Если флаги качества на действительных данных Брекетинга данные NaN различны, то установить значение качества и флаг к такому же, как ряд брекетинга с самым высоким качеством флагом. В приведенном ниже примере первый набор NaN будет заменен на qf = 3 и value = 3.
- Если флаги качества одинаковы, то интерполируйте значение между двумя допустимыми значениями с обеих сторон. В этом примере второй набор NaNs будет заменен QF = 1 и V = 6 и 9.
Код:
import datetime
import pandas as pd
start = datetime.strptime("2004-01-01 00:00","%Y-%m-%d %H:%M")
end = datetime.strptime("2004-01-01 03:00","%Y-%m-%d %H:%M")
df = pd.DataFrame(\
data = {'v' : [1,2,'NaN','NaN','NaN',3,2,1,5,3,'NaN','NaN',12,43,23,12,32,12,12],\
'qf': [1,1,'NaN','NaN','NaN',3,1,5,1,1,'NaN','NaN',1,3,4,2,1,1,1]},\
index = pd.date_range(start, end,freq="10min"))
Я попытался решить эту проблему, находя ряды НС и прокручивая их, чтобы исправить первый критерий, затем используя интерполяцию, чтобы решить вторую. Тем не менее, это очень медленно, поскольку я работаю с большим набором.
Спасибо, что сделал трюк. – swashbuckle