Метод last
Метод last применяется к объекту Resampler
и возвращает последнее значение из каждой группы,
образованной при передискретизации временного ряда.
Данный метод полезен, когда необходимо взять последнее
наблюдение за каждый период агрегации.
Синтаксис
resampler.last()
Пример
Создадим временной ряд с ежедневными данными и выполним передискретизацию с группировкой по месяцам, взяв последнее значение за каждый месяц:
import pandas as pd
dates = pd.date_range('2025-01-01', periods=90, freq='D')
df = pd.DataFrame({
'a': range(1, 91),
'b': range(10, 100)
}, index=dates)
res = df.resample('ME').last()
print(res)
Результат выполнения кода:
a b
2025-01-31 31 40
2025-02-28 59 68
2025-03-31 90 99
Пример
Применим метод last к объекту Resampler,
используя смещение в несколько дней. В результате
получим последние значения для каждого интервала
в 5 дней:
import pandas as pd
dates = pd.date_range('2025-01-01', periods=20, freq='D')
ser = pd.Series(range(1, 21), index=dates)
res = ser.resample('5D').last()
print(res)
Результат выполнения кода:
2025-01-01 5
2025-01-06 10
2025-01-11 15
2025-01-16 20
Freq: 5D, dtype: int64
Пример
Метод last корректно обрабатывает пропущенные
значения, возвращая последнее не пропущенное значение
в группе. Рассмотрим пример с пропусками:
import pandas as pd
import numpy as np
dates = pd.date_range('2025-01-01', periods=12, freq='D')
df = pd.DataFrame({
'a': [1, 2, np.nan, 4, 5, 6, np.nan, 8, 9, 10, 11, 12],
'b': [10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120]
}, index=dates)
res = df.resample('3D').last()
print(res)
Результат выполнения кода:
a b
2025-01-01 2.0 20
2025-01-04 5.0 50
2025-01-07 8.0 80
2025-01-10 11.0 110