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

Метод fillna

Метод fillna применяется к DataFrame и заменяет пропущенные значения NaN на переданное значение или по заданной стратегии. Основным параметром передается значение для заполнения. Дополнительно можно указать метод заполнения ffill или bfill, а также ограничить количество заполнений через параметр limit.

Синтаксис

df.fillna(value[, method, axis, inplace, limit])

Пример

Давайте заменим все пропуски в таблице на число 0:

import pandas as pd import numpy as np df = pd.DataFrame({ 'a': [1, np.nan, 3, np.nan, 5], 'b': [10, 20, np.nan, 40, 50] }) res = df.fillna(0) print(res)

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

a b 0 1.0 10.0 1 0.0 20.0 2 3.0 0.0 3 0.0 40.0 4 5.0 50.0

Пример

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

import pandas as pd import numpy as np df = pd.DataFrame({ 'a': [1, np.nan, 3, np.nan, 5], 'b': [10, 20, np.nan, 40, 50] }) res = df.fillna(df.mean()) print(res)

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

a b 0 1.0 10.0 1 3.0 20.0 2 3.0 30.0 3 3.0 40.0 4 5.0 50.0

Пример

Заполним пропуски предыдущим значением с помощью метода ffill:

import pandas as pd import numpy as np df = pd.DataFrame({ 'a': [1, np.nan, 3, np.nan, 5], 'b': [10, 20, np.nan, 40, 50] }) res = df.fillna(method='ffill') print(res)

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

a b 0 1.0 10.0 1 1.0 20.0 2 3.0 20.0 3 3.0 40.0 4 5.0 50.0

Пример

Заполним пропуски следующим значением с помощью метода bfill и ограничим количество заполнений до 1 в каждом столбце:

import pandas as pd import numpy as np df = pd.DataFrame({ 'a': [np.nan, np.nan, 3, np.nan, 5], 'b': [10, 20, np.nan, np.nan, 50] }) res = df.fillna(method='bfill', limit=1) print(res)

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

a b 0 NaN 10.0 1 3.0 20.0 2 3.0 NaN 3 5.0 NaN 4 5.0 50.0

Пример

Заполним пропуски разными значениями для разных столбцов с помощью словаря:

import pandas as pd import numpy as np df = pd.DataFrame({ 'a': [1, np.nan, 3, np.nan, 5], 'b': [10, 20, np.nan, 40, 50] }) res = df.fillna({'a': 0, 'b': 100}) print(res)

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

a b 0 1.0 10.0 1 0.0 20.0 2 3.0 100.0 3 0.0 40.0 4 5.0 50.0

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

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