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 и подсчет значений
Панды: как строить гистограммы по группам