Я бы хотел выполнить мобильное усреднение с учетом периодических c граничных условий. Я пытаюсь прояснить ситуацию.
У меня есть эти данные:
Date,Q
1989-01-01 00:00,0
1989-01-02 00:00,1
1989-01-03 00:00,4
1989-01-04 00:00,6
1989-01-05 00:00,8
1989-01-06 00:00,10
1989-01-07 00:00,11
Я хотел бы вычислить мобильное усреднение с учетом 3 данных: следующего и предыдущего. В частности, я хотел бы использовать ту же опцию в «скользящей» функции, когда первые данные (0 в python framework) могли учитывать последние и наоборот последние первые. Это позволило бы мне иметь некие периодические c граничные условия.
Действительно, я применил следующее: сначала я читаю фрейм данных
df = pd.read_csv(fname, index_col = 0, parse_dates=True)
, затем применяю " roll "as
df['Q'] = pd.Series(df["Q"].rolling(3, center=True).mean())
Однако я получаю следующие результаты:
Date
1989-01-01 NaN
1989-01-02 1.66
1989-01-03 3.66
1989-01-04 6
1989-01-05 8
1989-01-06 9.66
1989-01-07 NaN
Я знаю, что могу применить опцию" min_periods = 1 ", но это не то, что я хочу. Действительно, ясно, что во втором ряду результат верный:
1.66 = (0+1+4)/3
Однако я бы хотел, чтобы этот результат был в первом ряду:
(0+1+11)/3
Как вы можете заметил, что число 11 является значением последней строки. Точно так же я ожидаю в последней строке:
(10+11+0)/3
, где 0 - значение первой строки.
У вас есть предложения или идеи?
Спасибо,
D iego