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

Метод fillna

Метод fillna класса GroupBy применяется к сгруппированным данным и заполняет пропущенные значения внутри каждой группы. Метод принимает параметр value или method, определяющий способ заполнения. При использовании method='ffill' заполнение происходит вперед в пределах группы, а при method='bfill' - назад. Также можно передать словарь для указания разных значений для разных столбцов.

Синтаксис

df.groupby(by).fillna(value=None, method=None, axis=None, inplace=False, limit=None, downcast=None)

Пример

Давайте заполним пропуски в каждой группе с помощью предыдущего значения в группе:

import pandas as pd df = pd.DataFrame({ 'a': [1, 1, 2, 2, 2], 'b': [10, None, 30, None, 50] }) res = df.groupby('a').fillna(method='ffill') print(res)

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

a b 0 1 10.0 1 1 10.0 2 2 30.0 3 2 30.0 4 2 50.0

Пример

Заполним пропуски в каждой группе конкретным значением:

import pandas as pd df = pd.DataFrame({ 'a': [1, 1, 2, 2], 'b': [None, 20, None, 40], 'c': [100, None, 300, None] }) res = df.groupby('a').fillna({'b': 0, 'c': -1}) print(res)

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

a b c 0 1 0.0 100.0 1 1 20.0 -1.0 2 2 0.0 300.0 3 2 40.0 -1.0

Пример

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

import pandas as pd df = pd.DataFrame({ 'a': [1, 1, 2, 2, 2], 'b': [10, None, 30, None, 50], 'c': [None, 100, None, 200, None] }) res = df.groupby('a').fillna({'b': df.groupby('a')['b'].transform('mean'), 'c': df.groupby('a')['c'].transform('mean')}) print(res)

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

a b c 0 1 10.0 100.0 1 1 10.0 100.0 2 2 30.0 200.0 3 2 40.0 200.0 4 2 50.0 200.0

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

  • метод transform,
    который применяет функцию к каждой группе
  • метод agg,
    который применяет агрегирующую функцию к группам
  • метод apply,
    который применяет пользовательскую функцию к группам
  • метод filter,
    который фильтрует группы по условию
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить