Метод value_counts
Метод value_counts применяется к Series
и возвращает новую серию, содержащую подсчёт количества
вхождений каждого уникального значения. Результат
сортируется по убыванию частоты. Первым параметром
можно передать normalize для получения
относительных частот, а параметром sort
управлять сортировкой. Метод также позволяет исключать
пропущенные значения с помощью параметра dropna.
Синтаксис
ser.value_counts(normalize=False, sort=True, ascending=False, bins=None, dropna=True)
Пример
Давайте подсчитаем количество вхождений значений в серии:
import pandas as pd
ser = pd.Series([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
Пример
Теперь получим относительные частоты (в долях от общего количества):
import pandas as pd
ser = pd.Series(['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
Пример
Рассмотрим работу с пропущенными значениями:
import pandas as pd
import numpy as np
ser = pd.Series([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
Пример
Используем параметр bins для группировки значений в интервалы:
import pandas as pd
ser = pd.Series([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
res = ser.value_counts(bins=3)
print(res)
Результат выполнения кода:
(1.0, 4.0] 3
(7.0, 10.0] 3
(4.0, 7.0] 4
dtype: int64
Пример
Сортировка в порядке возрастания частот:
import pandas as pd
ser = pd.Series(['x', 'y', 'y', 'z', 'z', 'z'])
res = ser.value_counts(ascending=True)
print(res)
Результат выполнения кода:
x 1
y 2
z 3
dtype: int64
Смотрите также
-
метод
unique,
который возвращает уникальные значения серии -
метод
nunique,
который возвращает количество уникальных значений -
метод
drop_duplicates,
который удаляет дубликаты из серии -
метод
groupby,
который группирует данные для агрегации