Как мне заставить .resample().interpolate() не игнорировать точки данных, которые не соответствуют правилу?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как мне заставить .resample().interpolate() не игнорировать точки данных, которые не соответствуют правилу?

Сообщение Anonymous »

У меня есть временной ряд в нерегулярной временной сетке. Я хотел бы линейно интерполировать эти данные в регулярную сетку времени. В качестве упрощенного примера рассмотрим следующий код:

Код: Выделить всё

import pandas as pd

data = {'2020-01-01': 0.0,
'2020-01-02': 5.0,
'2020-01-05': 2.0}
series = pd.Series({pd.to_datetime(x): y for x, y in data.items()})
series_interp = series.resample('2D').interpolate()

print(series_interp)
Если я выполню эту интерполяцию вручную, я ожидаю следующий результат:

Код: Выделить всё

# 2020-01-01    0.0
# 2020-01-03    4.0
# 2020-01-05    2.0
# Freq: 2D, dtype: float64
Однако приведенный выше код дает:

Код: Выделить всё

# 2020-01-01    0.0
# 2020-01-03    1.0
# 2020-01-05    2.0
# Freq: 2D, dtype: float64
Очевидно, что значение на 03.01.2020 было рассчитано путем интерполяции между значениями на 01.01.2020 и 05.01.2020. Измерение от 2 января 2020 г. было проигнорировано. Можно ли добиться ожидаемого результата с помощью pd.Series.resample()?
Рабочий способ выполнения интерполяции:

Код: Выделить всё

index_new = pd.date_range(series.index.min(), series.index.max(), freq='2D')
series_interp = series.reindex(series.index.union(index_new))
series_interp.interpolate('index', inplace=True)
series_interp = series_interp.reindex(index_new)
print(series_interp)
Это дает правильный результат. Однако это несколько громоздко. Можно ли получить тот же результат, используя удобный метод resample временного ряда?

Подробнее здесь: https://stackoverflow.com/questions/790 ... t-dont-fit
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Действительно ли компиляторы C++ соответствуют правилу SFINAE массива нулевого размера?
    Гость » » в форуме C++
    0 Ответы
    33 Просмотры
    Последнее сообщение Гость
  • Действительно ли компиляторы C++ соответствуют правилу SFINAE массива нулевого размера?
    Гость » » в форуме C++
    0 Ответы
    24 Просмотры
    Последнее сообщение Гость
  • Pandas Resample 2M и 3M каждый месяц
    Anonymous » » в форуме Python
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • Неожиданное поведение pandas.Series.resample()
    Anonymous » » в форуме Python
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • Неожиданное поведение pandas.Series.resample()
    Anonymous » » в форуме Python
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»