Метод interpolate
Метод interpolate класса Resampler
применяется для заполнения пропущенных значений,
возникающих после передискретизации временных рядов.
Он использует различные методы интерполяции для
восстановления отсутствующих данных между
существующими точками. Основные параметры:
method - метод интерполяции (по умолчанию
'linear'), limit - максимальное количество
подряд идущих пропусков для заполнения.
Синтаксис
resampler.interpolate(method='linear', limit=None, limit_direction='forward', **kwargs)
Пример
Давайте создадим временной ряд с пропущенными значениями и выполним передискретизацию с интерполяцией:
import pandas as pd
import numpy as np
date_rng = pd.date_range('2023-01-01', periods=6, freq='D')
df = pd.DataFrame({'a': [1, np.nan, 3, np.nan, 5, 6]}, index=date_rng)
res = df.resample('2D').interpolate()
print(res)
Результат выполнения кода:
a
2023-01-01 1.000000
2023-01-02 1.500000
2023-01-03 3.000000
2023-01-04 4.000000
2023-01-05 5.000000
2023-01-06 6.000000
Пример
Давайте используем метод интерполяции 'pad' для заполнения пропусков предыдущим значением:
import pandas as pd
import numpy as np
date_rng = pd.date_range('2023-01-01', periods=6, freq='D')
df = pd.DataFrame({'a': [1, np.nan, 3, np.nan, 5, 6]}, index=date_rng)
res = df.resample('2D').interpolate(method='pad')
print(res)
Результат выполнения кода:
a
2023-01-01 1.000000
2023-01-02 1.000000
2023-01-03 3.000000
2023-01-04 3.000000
2023-01-05 5.000000
2023-01-06 5.000000
Пример
Давайте ограничим количество заполняемых
пропусков с помощью параметра limit:
import pandas as pd
import numpy as np
date_rng = pd.date_range('2023-01-01', periods=6, freq='D')
df = pd.DataFrame({'a': [1, np.nan, np.nan, np.nan, 5, 6]}, index=date_rng)
res = df.resample('2D').interpolate(method='linear', limit=1)
print(res)
Результат выполнения кода:
a
2023-01-01 1.000000
2023-01-02 1.500000
2023-01-03 2.000000
2023-01-04 NaN
2023-01-05 5.000000
2023-01-06 6.000000