Pandas: como representar value_counts como uma porcentagem
Você pode usar a função value_counts() no pandas para contar ocorrências de valores em uma determinada coluna de um DataFrame.
Para representar valores como porcentagens, você pode usar um dos seguintes métodos:
Método 1: representar valores como porcentagens (formatadas como decimais)
df. my_col . value_counts (normalize= True )
Método 2: representar valores como porcentagens (formatadas com símbolos de porcentagem)
df. my_col . value_counts (normalize= True ). mul ( 100 ). round ( 1 ). astype (str) + ' % '
Método 3: representar contagens de valores como porcentagens (com contagens)
counts = df. my_col . value_counts () percs = df. my_col . value_counts (normalize= True ) p.d. concat ([counts, percs], axis= 1 , keys=[' count ', ' percentage '])
Os exemplos a seguir mostram como usar cada método na prática com o seguinte DataFrame do 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
Exemplo 1: Representar valores como porcentagens (formatadas como decimais)
O código a seguir mostra como contar a ocorrência de cada valor na coluna do time e representar as ocorrências como uma porcentagem do total, em formato decimal:
#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
Pelo resultado podemos ver:
- O valor B representa 62,5% das ocorrências na coluna equipe.
- O valor A representa 25% das ocorrências na coluna equipe.
- O valor C representa 12,5% das ocorrências na coluna da equipe.
Observe que as porcentagens são formatadas como decimais.
Exemplo 2: Representar valores como porcentagens (formatadas com símbolos de porcentagem)
O código a seguir mostra como contar a ocorrência de cada valor na coluna da equipe e representar as ocorrências como uma porcentagem do total, formatada com símbolos de porcentagem:
#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
Observe que as porcentagens são formatadas como strings com símbolos de porcentagem.
Exemplo 3: Representando números de valores como porcentagens (com números)
O código a seguir mostra como contar a ocorrência de cada valor na coluna da equipe e representar as ocorrências como números e porcentagens:
#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
Observe que a coluna de contagem exibe a contagem de cada valor exclusivo na coluna da equipe, enquanto a coluna de porcentagem exibe cada valor exclusivo como uma porcentagem do número total de ocorrências.
Recursos adicionais
Os tutoriais a seguir explicam como realizar outras tarefas comuns em pandas:
Pandas: como traçar contas de valor
Pandas: como usar GroupBy e contagens de valores
Pandas: como traçar histogramas por grupo