Метод ffill
Метод ffill применяется к Series
и выполняет прямой перенос (forward fill) значений:
каждое пропущенное значение заменяется на предыдущее
непропущенное. Метод имеет параметр limit,
который определяет максимальное количество пропусков
подряд для заполнения.
Синтаксис
ser.ffill([limit])
Параметр limit задает максимальное количество
последовательных пропусков для заполнения.
Если параметр не указан, заполняются все пропуски.
Пример
Создадим серию с пропусками и заполним их предыдущими значениями:
import pandas as pd
import numpy as np
ser = pd.Series([1, np.nan, np.nan, 4, 5])
res = ser.ffill()
print(res)
Результат выполнения кода:
0 1.0
1 1.0
2 1.0
3 4.0
4 5.0
dtype: float64
В результате пропуски на позициях 1 и 2 были заполнены значением 1.0, которое стояло перед ними.
Пример
Используем параметр limit, чтобы заполнить
только определенное количество пропусков подряд:
import pandas as pd
import numpy as np
ser = pd.Series([1, np.nan, np.nan, np.nan, 5])
res = ser.ffill(limit=1)
print(res)
Результат выполнения кода:
0 1.0
1 1.0
2 NaN
3 NaN
4 5.0
dtype: float64
Здесь параметр limit=1 разрешает заполнить
только один пропуск после значения 1.0.
Следующие пропуски остаются незаполненными.
Пример
Метод ffill можно использовать совместно
с loc для выборочного заполнения или для
работы с индексом:
import pandas as pd
import numpy as np
ser = pd.Series(
[10, np.nan, 30, np.nan, 50],
index=['a', 'b', 'c', 'd', 'e']
)
res = ser.ffill()
print(res)
Результат выполнения кода:
a 10.0
b 10.0
c 30.0
d 30.0
e 50.0
dtype: float64
При наличии именованного индекса заполнение выполняется в соответствии с порядком следования элементов в серии.
Смотрите также
-
метод
bfill,
который заполняет пропуски следующими значениями -
метод
fillna,
который заполняет пропуски указанным значением -
метод
interpolate,
который интерполирует пропущенные значения -
метод
dropna,
который удаляет строки с пропущенными значениями