Panda: come utilizzare groupby e ordina all'interno dei gruppi


È possibile utilizzare la seguente sintassi per raggruppare le righe in un DataFrame panda e quindi ordinare i valori all’interno dei gruppi:

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

L’esempio seguente mostra come utilizzare questa sintassi nella pratica.

Esempio: utilizzo di GroupBy e ordinamento in gruppi in Pandas

Supponiamo di avere il seguente DataFrame panda che mostra le vendite effettuate in due negozi diversi:

 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

Possiamo utilizzare la seguente sintassi per raggruppare le righe per colonna del negozio e ordinarle in ordine decrescente in base alla colonna delle vendite :

 #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

Tieni presente che potremmo anche rimuovere l’argomento ascending=False per ordinare i valori delle vendite in ordine 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

Tieni presente che la funzione head() visualizza solo i primi 5 valori per gruppo.

Per visualizzare i primi n valori per gruppo, utilizzare semplicemente head(n) .

Nota : puoi trovare la documentazione completa dell’operazione GroupBy in panda qui .

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre operazioni comuni nei panda:

Panda: come calcolare il cumulato per gruppo
Panda: come contare i valori unici per gruppo
Panda: come calcolare la correlazione per gruppo

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *