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

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *