Pandas: como classificar valores em uma tabela cruzada
Você pode usar os seguintes métodos para classificar linhas ou colunas em uma crosstab do Pandas:
Método 1: classificar tabela cruzada por valores de linha
p.d. crosstab (df. col1 , df. col2 ). sort_index (axis= 0 , ascending= False )
Método 2: classificar tabela cruzada por valores de coluna
p.d. crosstab (df. col1 , df. col2 ). sort_index (axis= 1 , ascending= False )
Os exemplos a seguir mostram como usar cada um desses métodos na prática com a seguinte tabela cruzada 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]}) #create crosstab to display count of players by team and position my_crosstab = pd. crosstab (df. team , df. position ) #view crosstab print (my_crosstab) FG position team AT 12 B 3 1 C 2 2
Exemplo 1: classificar tabela cruzada por valores de linha
Podemos usar a seguinte sintaxe para classificar as linhas da tabela cruzada com base nos valores das colunas da equipe em ordem decrescente (Z a A):
#create crosstab with rows sorted from Z to A p.d. crosstab (df. team , df. position ). sort_index (axis= 0 , ascending= False ) position F G team C 2 2 B 3 1 AT 12
Observe que as linhas da crosstab agora são classificadas por valores de equipe em ordem alfabética inversa.
Nota : A função crosstab() exibe os valores das linhas da crosstab em ordem alfabética (A a Z) por padrão.
Exemplo 2: Classificar tabela cruzada por valores de coluna
Podemos usar a seguinte sintaxe para classificar as colunas da tabela cruzada com base nos valores das colunas da equipe em ordem decrescente (Z a A):
#create crosstab with columns sorted from Z to A p.d. crosstab (df. team , df. position ). sort_index (axis= 1 , ascending= False ) G F position team At 2 1 B 1 3 C 2 2
Observe que as colunas da crosstab agora são classificadas por valores de posição em ordem alfabética inversa.
Nota : A função crosstab() exibe os valores das colunas da crosstab em ordem alfabética (A a Z) por padrão.
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 em pandas:
Pandas: Como criar uma crosstab com porcentagens
Pandas: Como usar aggfunc na função crosstab()
Pandas: como criar um gráfico de barras a partir de uma tabela cruzada