РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
213 of 687 menu

Метод fillna

Метод fillna применяется к Series и позволяет заменить пропущенные значения (NaN) на указанные значения или значения, вычисленные на основе других данных. Основным параметром является значение, которым будут заполнены пропуски. Также можно использовать параметр method для заполнения вперёд (ffill) или назад (bfill), параметр limit для ограничения количества заполнений, и параметр inplace для изменения исходного объекта.

Синтаксис

ser.fillna(value, method=None, axis=None, inplace=False, limit=None, downcast=None)

Пример

Давайте создадим серию с пропущенными значениями и заполним их числом 0:

import pandas as pd import numpy as np ser = pd.Series([1, np.nan, 3, np.nan, 5]) res = ser.fillna(0) print(res)

Результат выполнения кода:

0 1.0 1 0.0 2 3.0 3 0.0 4 5.0 dtype: float64

Пример

Теперь заполним пропуски средним значением всех элементов серии:

import pandas as pd import numpy as np ser = pd.Series([1, np.nan, 3, 4, np.nan]) mean_val = ser.mean() res = ser.fillna(mean_val) print(res)

Результат выполнения кода:

0 1.000000 1 2.666667 2 3.000000 3 4.000000 4 2.666667 dtype: float64

Пример

Заполним пропуски с использованием метода заполнения вперёд (forward fill):

import pandas as pd import numpy as np ser = pd.Series([1, np.nan, np.nan, 4, 5]) res = ser.fillna(method='ffill') print(res)

Результат выполнения кода:

0 1.0 1 1.0 2 1.0 3 4.0 4 5.0 dtype: float64

Пример

Заполним пропуски с использованием метода заполнения назад (backward fill) и ограничим количество заполнений параметром limit:

import pandas as pd import numpy as np ser = pd.Series([1, np.nan, np.nan, 4, np.nan]) res = ser.fillna(method='bfill', limit=1) print(res)

Результат выполнения кода:

0 1.0 1 4.0 2 NaN 3 4.0 4 NaN dtype: float64

Пример

Используем параметр inplace для изменения исходной серии без создания новой:

import pandas as pd import numpy as np ser = pd.Series([1, np.nan, 3, np.nan, 5]) ser.fillna(0, inplace=True) print(ser)

Результат выполнения кода:

0 1.0 1 0.0 2 3.0 3 0.0 4 5.0 dtype: float64

Пример

Заполним пропуски словарём, где ключом является индекс элемента, а значением - значение для заполнения:

import pandas as pd import numpy as np ser = pd.Series([1, np.nan, 3, np.nan, 5]) fill_dict = {1: 99, 3: 100} res = ser.fillna(fill_dict) print(res)

Результат выполнения кода:

0 1.0 1 99.0 2 3.0 3 100.0 4 5.0 dtype: float64

Смотрите также

  • метод dropna,
    который удаляет все пропущенные значения из серии
  • метод isna,
    который определяет, где находятся пропуски в серии
  • метод ffill,
    который заполняет пропуски значениями из предыдущих элементов
  • метод bfill,
    который заполняет пропуски значениями из следующих элементов
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить