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

Метод nunique

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

Синтаксис

groupby_obj.nunique([dropna])

Параметр dropna определяет, включать ли пропущенные значения в подсчет. По умолчанию равен True, то есть пропуски исключаются из подсчета.

Пример

Рассмотрим базовый пример подсчета уникальных значений в группах:

import pandas as pd df = pd.DataFrame({ 'group': ['a', 'a', 'b', 'b', 'a'], 'value': [1, 2, 1, 3, 2] }) grouped = df.groupby('group') res = grouped.nunique() print(res)

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

value group a 2 b 2

В группе a уникальные значения: 1 и 2, в группе b: 1 и 3.

Пример

Подсчет уникальных значений по нескольким столбцам:

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

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

x y group a 2 3 b 2 2

Пример

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

import pandas as pd import numpy as np df = pd.DataFrame({ 'group': ['a', 'a', 'b', 'b', 'a'], 'value': [1, np.nan, 1, 2, np.nan] }) grouped = df.groupby('group') res = grouped.nunique(dropna=False) print(res)

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

value group a 2 b 2

При dropna=False пропуски учитываются как отдельное уникальное значение.

Пример

Применение метода nunique к конкретному столбцу с помощью оператора индексации:

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

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

group a 3 b 2 Name: value1, dtype: int64

Пример

Сравнение nunique с методом count для понимания разницы между количеством уникальных значений и общим количеством:

import pandas as pd df = pd.DataFrame({ 'group': ['a', 'a', 'b', 'b', 'a'], 'value': [1, 2, 1, 2, 1] }) grouped = df.groupby('group') res_unique = grouped.nunique() res_count = grouped.count() print("nunique:") print(res_unique) print("count:") print(res_count)

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

nunique: value group a 2 b 2 count: value group a 3 b 2

Метод nunique показывает количество уникальных значений, а метод count - общее количество значений в группе.

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

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