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