pandas.DataFrame.ffill#

DataFrame.ffill(*, axis=None, inplace=False, limit=None, limit_area=None, downcast=)[источник]#

Заполнение NA/NaN значений путем распространения последнего валидного наблюдения до следующего валидного.

Параметры:
ось{0 или ‘index’} для Series, {0 или ‘index’, 1 или ‘columns’} для DataFrame

Ось, вдоль которой заполнять пропущенные значения. Для Series этот параметр не используется и по умолчанию равен 0.

inplacebool, по умолчанию False

Если True, заполнять на месте. Примечание: это изменит любые другие представления этого объекта (например, срез без копирования для столбца в DataFrame).

limitint, по умолчанию None

Если указан метод, это максимальное количество последовательных значений NaN для заполнения вперед/назад. Другими словами, если есть пробел с более чем этим количеством последовательных NaN, он будет заполнен только частично. Если метод не указан, это максимальное количество записей вдоль всей оси, где NaN будут заполнены. Должно быть больше 0, если не None.

limit_area{None, ‘inside’, ‘outside’}, по умолчанию None

Если указан limit, последовательные значения NaN будут заполнены с этим ограничением.

  • None: Нет ограничений на заполнение.

  • ‘inside’: Заполнять только NaN, окруженные допустимыми значениями (интерполяция).

  • ‘outside’: Заполнять только NaN за пределами допустимых значений (экстраполяция).

Добавлено в версии 2.2.0.

downcastdict, по умолчанию None

Словарь элемент->тип данных для понижения типа, если возможно, или строка 'infer', которая попытается понизить тип до соответствующего равного типа (например, float64 до int64, если возможно).

Устарело с версии 2.2.0.

Возвращает:
Series/DataFrame или None

Объект с заполненными пропущенными значениями или None, если inplace=True.

Примеры

>>> df = pd.DataFrame([[np.nan, 2, np.nan, 0],
...                    [3, 4, np.nan, 1],
...                    [np.nan, np.nan, np.nan, np.nan],
...                    [np.nan, 3, np.nan, 4]],
...                   columns=list("ABCD"))
>>> df
     A    B   C    D
0  NaN  2.0 NaN  0.0
1  3.0  4.0 NaN  1.0
2  NaN  NaN NaN  NaN
3  NaN  3.0 NaN  4.0
>>> df.ffill()
     A    B   C    D
0  NaN  2.0 NaN  0.0
1  3.0  4.0 NaN  1.0
2  3.0  4.0 NaN  1.0
3  3.0  3.0 NaN  4.0
>>> ser = pd.Series([1, np.nan, 2, 3])
>>> ser.ffill()
0   1.0
1   1.0
2   2.0
3   3.0
dtype: float64