Pandas: como usar aggfunc na função crosstab()


Você pode usar o argumento aggfunc na função pandas crosstab() para criar uma crosstab que agrega valores usando uma métrica específica:

 p.d. crosstab (index=df. col1 , columns=df. col2 , values=df. col3 , aggfunc=' count ')

O valor padrão de aggfunc é “count”, mas você pode especificar outros métodos de agregação, como média, mediana, soma, mínimo, máximo, etc.

Você também pode especificar vários métodos de agregação no argumento aggfunc :

 p.d. crosstab (index=df. col1 , columns=df. col2 , values=df. col3 , aggfunc=[' min ', ' max '])

Os exemplos a seguir mostram como usar cada um desses métodos na prática com o seguinte DataFrame do pandas:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'B', 'B', 'B', 'B', 'C', 'C', 'C', 'C '],
                   ' position ':['G', 'G', 'F', 'G', 'F', 'F', 'F', 'G', 'G', 'F', 'F'],
                   ' points ': [22, 25, 24, 39, 34, 20, 18, 17, 20, 19, 22]})

#view DataFrame
print (df)

   team position points
0 AG 22
1 AG 25
2 AF 24
3 BG 39
4 BF 34
5 BF 20
6 BF 18
7 GC 17
8 GC 20
9 CF 19
10 CF 22

Exemplo 1: Crie uma crosstab com um valor em aggfunc

Podemos usar a seguinte função crosstab() com o argumento aggfunc=’mean’ para criar uma crosstab que exibe os pontos de valor médio para cada combinação de posição e equipe:

 #create crosstab that displays mean points value by team and position
p.d. crosstab (index=df. team , columns=df. position , values=df. points , aggfunc=' mean ')

position F G
team		
A 24.0 23.5
B 24.0 39.0
C 20.5 18.5

Veja como interpretar o resultado:

  • A média de pontos dos jogadores da equipe A na posição F é de 24 .
  • A média de pontos dos jogadores da equipe A na posição G é de 23,5 .

E assim por diante.

Também podemos usar outra métrica de agregação, como valor máximo:

 #create crosstab that displays max points value by team and position
p.d. crosstab (index=df. team , columns=df. position , values=df. points , aggfunc=' max ')


position F G
team		
At 24 25
B 34 39
C 22 20

Veja como interpretar o resultado:

  • O máximo de pontos para jogadores da equipe A na posição F é 24 .
  • O máximo de pontos para jogadores da equipe A na posição G é 25 .

E assim por diante.

Exemplo 2: Crie uma crosstab com vários valores em aggfunc

Podemos usar a função crosstab() com múltiplos valores no argumento aggfunc para agregar valores de pontos por múltiplas métricas para cada combinação de posição e equipe:

 #create crosstab that displays min and max points by team and position
p.d. crosstab (df. team , df. position , df. points , aggfunc=[' min ', ' max ']) 

	              min max
position F G F G
team				
A 24 22 24 25
B 18 39 34 39
C 19 17 22 20

Veja como interpretar o resultado:

  • O valor mínimo de pontos para jogadores da equipe A na posição F é 24 .
  • O valor mínimo de pontos para jogadores da equipe A na posição G é 22 .
  • O valor máximo de pontos para jogadores da equipe A na posição F é 24 .
  • O valor máximo de pontos para jogadores da equipe A na posição G é 25 .

E assim por diante.

Nota : Você pode encontrar a documentação completa da função crosstab() do pandas aqui .

Recursos adicionais

Os tutoriais a seguir explicam como realizar outras tarefas comuns do panda:

Pandas: Como criar uma crosstab com porcentagens
Pandas: como usar GroupBy e contagens de valores
Pandas: como usar GroupBy com contagem de bin

Add a Comment

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