У меня есть серия суточных метеоданных, и я хотел бы заменить каждое суточное значение на среднее значение для месяца, к которому относится день. Чтобы достичь этого, я хочу сначала уменьшить частоту данных до среднемесячного значения, снова увеличить частоту до дневной. Все это с использованием Pandas 1.0.1.
Кадр данных выглядит следующим образом:
dframe =
2001-01-01 23.00000
2001-01-02 19.18034
2001-01-03 9.18034
2001-01-04 0.00000
2001-01-05 0.00000
2001-01-06 0.00000
2001-01-07 0.00000
2001-01-08 0.00000
2001-01-09 9.18034
2001-01-10 19.18034
2001-02-01 20.18034
2001-02-02 10.18034
2001-02-03 0.00000
2001-02-04 0.00000
2001-02-05 0.00000
2001-02-06 0.00000
2001-02-07 0.00000
2001-02-08 10.18034
2001-02-09 20.18034
2001-02-10 24.00000
После понижающей дискретизации все выглядит хорошо (значения могут не совпадать, это фиктивные числа):
means = dframe.resample(rule = 'M').mean()
means =
2001-01-31 8.456906
2001-02-28 7.499419
Но последующее повышение частоты дискретизации не работает так, как мне бы хотелось:
segmented = means.resample(rule = 'D').bfill()
segmented =
2001-01-31 8.456906
2001-02-01 7.499419
2001-02-02 7.499419
2001-02-03 7.499419
2001-02-04 7.499419
... ...
Первый период (январь 2001 года) не подвергался повышению частоты, а второй -.
Я перепробовал все комбинации с аргументами closed
и label
и loffset
и с bfill()
и ffill()
, но безрезультатно; иногда первый месяц ошибается, а иногда - последний, но всегда неправильный.
Помощь будет принята с благодарностью.