Pandas: как представить value_counts в процентах


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

Чтобы представить значения в процентах, вы можете использовать один из следующих методов:

Способ 1: Представляйте значения в процентах (в десятичном формате)

 df. my_col . value_counts (normalize= True )

Способ 2: представление значений в процентах (в формате символов процентов)

 df. my_col . value_counts (normalize= True ). mul ( 100 ). round ( 1 ). astype (str) + ' % '

Метод 3: представление количества значений в процентах (со счетчиками)

 counts = df. my_col . value_counts ()
percs = df. my_col . value_counts (normalize= True )
p.d. concat ([counts, percs], axis= 1 , keys=[' count ', ' percentage '])

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

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'B', 'B', 'B', 'B', 'B', 'C'],
                   ' points ': [15, 12, 18, 20, 22, 28, 35, 40]})

#view DataFrame
print (df)

  team points
0 to 15
1 to 12
2 B 18
3 B 20
4 B 22
5 B 28
6 B 35
7 C 40

Пример 1: Представление значений в процентах (в десятичном формате)

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

 #count occurrence of each value in 'team' column as percentage of total
df. team . value_counts (normalize= True )

B 0.625
At 0.250
C 0.125
Name: team, dtype: float64

По результату мы видим:

  • Значение B соответствует 62,5% случаев в столбце команды.
  • Значение A соответствует 25 % случаев в столбце команды.
  • Значение C соответствует 12,5% случаев в столбце команды.

Обратите внимание, что проценты имеют десятичный формат.

Пример 2. Представление значений в процентах (в формате с символами процентов)

Следующий код показывает, как подсчитать появление каждого значения в столбце команды и представить появление в виде процента от общего числа, отформатированного с помощью символов процента:

 #count occurrence of each value in 'team' column as percentage of total
df. team . value_counts (normalize= True ). mul ( 100 ). round ( 1 ). astype (str) + ' % '

B 62.5%
At 25.0%
C 12.5%
Name: team, dtype: object

Обратите внимание, что проценты форматируются как строки с символами процентов.

Пример 3. Представление чисел значений в процентах (с числами)

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

 #count occurrence of each value in 'team' column
counts = df. team . value_counts ()

#count occurrence of each value in 'team' column as percentage of total
percs = df. team . value_counts (normalize= True )

#concatenate results into one DataFrame
p.d. concat ([counts, percs], axis= 1 , keys=[' count ', ' percentage '])

        count percentage
B 5 0.625
At 2 0.250
C 1 0.125

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

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

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

Pandas: как построить стоимостные счета
Pandas: как использовать GroupBy и подсчет значений
Панды: как строить гистограммы по группам

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *