Pandas: como usar groupby e sort dentro de grupos


Você pode usar a seguinte sintaxe para agrupar linhas em um DataFrame do pandas e então classificar os valores dentro dos grupos:

 df. sort_values ([' var1 ',' var2 '],ascending= False ). groupby (' var1 '). head ()

O exemplo a seguir mostra como usar essa sintaxe na prática.

Exemplo: usando GroupBy e classificação em grupos no Pandas

Digamos que temos o seguinte DataFrame do pandas que mostra as vendas realizadas em duas lojas diferentes:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' store ': ['B', 'B', 'A', 'A', 'B', 'B', 'A', 'A'],
                   ' sales ': [12, 25, 8, 14, 10, 20, 30, 30]})

#view DataFrame
print (df)

  blind sales
0 B 12
1 B 25
2 to 8
3 to 14
4 B 10
5 B 20
6 to 30
7 to 30

Podemos usar a seguinte sintaxe para agrupar linhas por coluna de loja e classificar em ordem decrescente com base na coluna de vendas :

 #group by store and sort by sales values in descending order
df. sort_values ([' store ', ' sales '],ascending= False ). groupby (' store '). head ()

	blind sales
1 B 25
5 B 20
0 B 12
4 B 10
6 to 30
7 to 30
3 to 14
2 to 8

Observe que também poderíamos remover o argumento ascendente=Falso para classificar os valores de vendas em ordem crescente:

 #group by store and sort by sales values in ascending order
df. sort_values ([' store ',' sales ']). groupby (' store '). head ()

	blind sales
2 to 8
3 to 14
6 to 30
7 to 30
4 B 10
0 B 12
5 B 20
1 B 25

Observe que a função head() exibe apenas os 5 primeiros valores por grupo.

Para exibir os n principais valores por grupo, basta usar head(n) .

Nota : Você pode encontrar a documentação completa da operação GroupBy no pandas aqui .

Recursos adicionais

Os tutoriais a seguir explicam como realizar outras operações comuns em pandas:

Pandas: como calcular a soma acumulada por grupo
Pandas: como contar valores únicos por grupo
Pandas: como calcular a correlação por grupo

Add a Comment

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