У меня есть 7 наборов данных от разных датчиков, которые регистрировали данные каждые 30 минут с июня / 2017 по май / 2018. Я выполнил несколько расчетов для каждого, и теперь я хочу получить одну усредненную серию. Каждая серия не имеет одинакового размера, есть некоторые пробелы и измерения, которые начались или закончились раньше / позже в одной, но не в других. Поэтому я хотел бы иметь среднее значение каждой конкретной даты и времени для любых данных, которые у меня есть, если только у двух из них есть информация, я хочу, чтобы это среднее значение, если есть только одно, повторило его в новом столбце.
В итоге у меня появился словарь (sfs) с каждым датчиком внутри в виде информационного кадра (sfs ['50 '], sfs ['51'] ....). Этот список я использовал в циклах: датчики= ['50', '51', '52', '53', '54', '56', '58'] # клавиши словаря sfs (количество датчиков)
И Iтребуется только среднее значение «SFD»: sfs [сенсоры] .SFD
Вот как выглядят некоторые данные:
sfs['50'].SFD.head()
Out[406]:
datetime
2017-05-30 15:30:00 108.3570
2017-05-30 16:00:00 103.2061
2017-05-30 16:30:00 103.5196
2017-05-30 17:00:00 89.0948
2017-05-30 17:30:00 71.2196
Name: SFD, dtype: float64
sfs['50'].SFD.tail()
Out[413]:
datetime
2018-05-24 10:30:00 57.0931
2018-05-24 11:00:00 58.0127
2018-05-24 11:30:00 62.0369
2018-05-24 12:00:00 67.6476
2018-05-24 12:30:00 72.9600
sfs['53'].SFD.head()
Out[409]:
datetime
2017-05-30 16:00:00 61.0546
2017-05-30 16:30:00 54.2241
2017-05-30 17:00:00 45.3321
2017-05-30 17:30:01 31.7433
2017-05-30 18:00:01 24.1680
sfs['53'].SFD.tail()
Out[414]:
datetime
2018-05-24 11:00:01 39.5086
2018-05-24 11:30:01 44.4543
2018-05-24 12:00:00 48.9744
2018-05-24 12:30:01 52.1892
2018-05-24 13:00:01 50.6103
sfs['56'].SFD.head()
Out[408]:
datetime
2017-08-03 14:30:00 12.6939
2017-08-03 15:00:00 9.9883
2017-08-03 15:30:00 4.9856
2017-08-03 16:00:00 1.6739
2017-08-03 16:30:00 0.2660
sfs['56'].SFD.tail()
Out[415]:
datetime
2018-05-24 11:30:00 31.6521
2018-05-24 12:00:00 33.9017
2018-05-24 12:30:00 37.2533
2018-05-24 13:00:00 37.0519
2018-05-24 13:30:00 36.7118
Я думал об использовании groupby, но он не работает в dict. Попытка принудительного суммирования и деления, но я получаю много NAN из-за пробелов, например: (sfs ['50 ']. SFD + sfs ['51']. SFD) / 2
Итак, ожидаемыйдолжен иметь серию с усредненными значениями SFD с учетом минут в дате и времени. Таким образом, если измерение выполняется в 2018-05-24 12:30:01, его можно усреднить с 2018-05-24 12:30:00. Также, когда есть только одна дата и время с мерой, их можно просто скопировать в усредненный ряд (вместо того, чтобы стать NAN).
Большое спасибо!