Метод value_counts
Метод value_counts применяется к объекту Index
и возвращает серию с количеством вхождений каждого уникального
значения индекса. Результат сортируется по убыванию частоты
(самые частые значения идут первыми). Метод полезен для
анализа распределения значений в индексе.
Синтаксис
index.value_counts(normalize=False, sort=True, ascending=False, dropna=True)
Параметры метода:
-
normalize- еслиTrue, возвращаются относительные частоты (доли) вместо абсолютных; -
sort- еслиTrue, результат сортируется по значениям частот; -
ascending- еслиTrue, сортировка производится по возрастанию частот; -
dropna- еслиTrue, пропущенные значения исключаются из подсчета.
Пример
Давайте создадим индекс с повторяющимися значениями и подсчитаем количество вхождений каждого значения:
import pandas as pd
ser = pd.Index([1, 2, 2, 3, 3, 3, 4, 4, 4, 4])
res = ser.value_counts()
print(res)
Результат выполнения кода:
4 4
3 3
2 2
1 1
dtype: int64
Пример
Получим относительные частоты с помощью параметра normalize:
import pandas as pd
ser = pd.Index(['a', 'b', 'b', 'c', 'c', 'c'])
res = ser.value_counts(normalize=True)
print(res)
Результат выполнения кода:
c 0.5
b 0.333333
a 0.166667
dtype: float64
Пример
Отсортируем результат по возрастанию частот с помощью параметра
ascending:
import pandas as pd
ser = pd.Index([5, 5, 6, 6, 6, 7, 7])
res = ser.value_counts(ascending=True)
print(res)
Результат выполнения кода:
7 2
5 2
6 3
dtype: int64
Пример
Исключим пропущенные значения из подсчета с помощью параметра
dropna:
import pandas as pd
import numpy as np
ser = pd.Index([1, 2, np.nan, 2, np.nan, 3])
res = ser.value_counts(dropna=False)
print(res)
Результат выполнения кода:
2.0 2
NaN 2
1.0 1
3.0 1
dtype: int64
Смотрите также
-
метод
unique,
который возвращает массив уникальных значений индекса -
метод
duplicated,
который возвращает булеву маску дублирующихся значений -
метод
drop_duplicates,
который удаляет дублирующиеся значения из индекса -
атрибут
is_unique,
который проверяет все ли значения в индексе уникальны