Как использовать функцию Pandas value_counts() (с примерами)


Вы можете использовать функцию value_counts() для подсчета частоты уникальных значений в серии pandas.

Эта функция использует следующий базовый синтаксис:

my_series. value_counts ()

В следующих примерах показано, как использовать этот синтаксис на практике.

Пример 1. Частота подсчета уникальных значений

В следующем коде показано, как подсчитать количество вхождений уникальных значений в серии pandas:

import pandas as pd

#create pandas Series
my_series = pd.Series([3, 3, 3, 3, 4, 4, 7, 7, 8, 9])

#count occurrences of unique values in Series
my_series. value_counts ()

3 4
4 2
7 2
8 1
9 1
dtype: int64

Это говорит нам:

  • Значение 3 встречается 4 раза.
  • Значение 4 встречается 2 раза.
  • Значение 7 встречается 2 раза.

И так далее.

Пример 2. Частота подсчета уникальных значений (включая NaN)

По умолчанию функция value_counts() не показывает частоту значений NaN.

Однако вы можете использовать аргумент dropna для отображения частоты значений NaN:

import pandas as pd
import numpy as np

#create pandas Series with some NaN values
my_series = pd.Series([3, 3, 3, 3, 4, 4, 7, 7, 8, 9, np.nan, np.nan])

#count occurrences of unique values in Series, including NaNs
my_series. value_counts (dropna= False )

3.0 4
4.0 2
7.0 2
NaN 2
8.0 1
9.0 1
dtype: int64

Пример 3. Подсчет относительной частоты уникальных значений

В следующем коде показано, как использовать аргумент normalize для подсчета относительной частоты уникальных значений в серии pandas:

import pandas as pd

#create pandas Series
my_series = pd.Series([3, 3, 3, 3, 4, 4, 7, 7, 8, 9])

#count occurrences of unique values in Series
my_series. value_counts (normalize= True )

3 0.4
4 0.2
7 0.2
8 0.1
9 0.1
dtype: float64

Это говорит нам:

  • Значение 3 представляет 40% всех значений в серии.
  • Значение 4 представляет 20% всех значений в серии.
  • Значение 7 представляет 20% всех значений в серии.

И так далее.

Пример 4. Частота подсчета в бинах

В следующем коде показано, как использовать аргумент bins для подсчета частоты значений в серии pandas, которые попадают в бины одинакового размера:

import pandas as pd

#create pandas Series
my_series = pd.Series([3, 3, 3, 3, 4, 4, 7, 7, 8, 9])

#count occurrences of unique values in Series
my_series. value_counts (bins= 3 )

(3.0, 5.0] 6
(5.0, 7.0] 2
(7.0, 9.0] 2
dtype: int64

Это говорит нам:

  • Есть 6 значений, которые попадают в диапазон от 3 до 5.
  • Есть 2 значения, которые попадают в диапазон от 5 до 7.
  • Есть 2 значения, которые попадают в диапазон от 7 до 9.

Пример 5: подсчет частоты значений в Pandas DataFrame

Мы также можем использовать функцию value_counts() для вычисления частоты уникальных значений в определенном столбце кадра данных pandas:

import pandas as pd

#create DataFrame
df = pd.DataFrame({'points': [9, 9, 9, 10, 10, 13, 15, 22],
 'assists': [5, 7, 7, 9, 12, 9, 9, 4],
 'rebounds': [11, 8, 10, 6, 6, 5, 9, 12]})
#count occurrences of unique values in 'points' column
df['points']. value_counts ()

9 3
10 2
13 1
15 1
22 1
Name: points, dtype: int64

Дополнительные ресурсы

В следующих руководствах объясняется, как использовать другие распространенные функции в pandas:

Как использовать функцию description() в Pandas
Как подсчитать количество строк в Pandas
Как подсчитать наблюдения по группе в Pandas