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

Метод value_counts

Метод value_counts применяется к объекту GroupBy и возвращает серию с количеством вхождений каждого уникального значения внутри каждой группы. Первым параметром можно указать столбец или подстроку для подсчета. Если параметр не указан, подсчет выполняется по всем столбцам группировки. По умолчанию результат сортируется по убыванию частот.

Синтаксис

groupby_object.value_counts(subset=None, normalize=False, sort=True, ascending=False, dropna=True)

Пример

Создадим таблицу и сгруппируем данные по столбцу a, затем подсчитаем частоты значений в столбце b:

import pandas as pd df = pd.DataFrame({ 'a': [1, 1, 1, 2, 2, 2, 3, 3, 3], 'b': [10, 20, 10, 20, 20, 30, 10, 10, 30] }) grouped = df.groupby('a') res = grouped.value_counts(subset='b') print(res)

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

a b 1 10 2 20 1 2 20 2 30 1 3 10 2 30 1 dtype: int64

Пример

Используем параметр normalize для получения относительных частот вместо абсолютных:

import pandas as pd df = pd.DataFrame({ 'a': [1, 1, 1, 2, 2, 2, 3, 3, 3], 'b': [10, 20, 10, 20, 20, 30, 10, 10, 30] }) grouped = df.groupby('a') res = grouped.value_counts(subset='b', normalize=True) print(res)

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

a b 1 10 0.666667 20 0.333333 2 20 0.666667 30 0.333333 3 10 0.666667 30 0.333333 dtype: float64

Пример

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

import pandas as pd df = pd.DataFrame({ 'a': [1, 1, 2, 2, 3, 3], 'b': [10, 20, 10, 30, 20, 30] }) grouped = df.groupby('a') res = grouped.value_counts(subset='b', sort=False) print(res)

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

a b 1 10 1 20 1 2 10 1 30 1 3 20 1 30 1 dtype: int64

Пример

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

import pandas as pd import numpy as np df = pd.DataFrame({ 'a': [1, 1, 2, 2, 3, 3], 'b': [10, np.nan, 20, np.nan, 10, 20] }) grouped = df.groupby('a') res = grouped.value_counts(subset='b', dropna=False) print(res)

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

a b 1 10.0 1 NaN 1 2 20.0 1 NaN 1 3 10.0 1 20.0 1 dtype: int64

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

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