Panda: come ottenere le prime n righe per gruppo


È possibile utilizzare la seguente sintassi di base per ottenere le prime N righe per gruppo in un DataFrame panda:

 df. groupby (' group_column '). head ( 2 ). reset_index (drop= True )

Questa particolare sintassi restituirà le prime 2 righe per gruppo.

Cambia semplicemente il valore nella funzione head() per restituire un numero diverso di righe superiori.

I seguenti esempi mostrano come utilizzare questa sintassi con i seguenti DataFrame panda:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'A', 'B', 'B', 'B', 'B', 'B'],
                   ' position ': ['G', 'G', 'G', 'F', 'F', 'G', 'G', 'F', 'F', 'F'],
                   ' points ': [5, 7, 7, 9, 12, 9, 9, 4, 7, 7]})

#view DataFrame
print (df)

  team position points
0 AG 5
1 AG 7
2 AG 7
3 AF 9
4AF 12
5 BG 9
6 BG 9
7 BF 4
8 BF 7
9 BF 7

Esempio 1: ottieni le prime N righe raggruppate per colonna

Il codice seguente mostra come restituire le prime 2 righe, raggruppate in base alla variabile team :

 #get top 2 rows grouped by team
df. groupby (' team '). head ( 2 ). reset_index (drop= True )

        team position points
0 A G 5
1 A G 7
2 B G 9
3 B G 9

L’output mostra le prime 2 righe, raggruppate per variabile del team .

Esempio 2: ottieni le prime N righe raggruppate per più colonne

Il codice seguente mostra come restituire le prime 2 righe, raggruppate per variabili di squadra e posizione :

 #get top 2 rows grouped by team and position
df. groupby ([' team ', ' position ']). head ( 2 ). reset_index (drop= True )

team position points
0 A G 5
1 A G 7
2 A F 9
3 A F 12
4 B G 9
5 B G 9
6 B F 4
7 B F 7

L’output mostra le prime 2 righe, raggruppate per variabili di squadra e posizione .

Risorse addizionali

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

Panda: come trovare valori univoci in una colonna
Panda: come trovare valori univoci in più colonne
Panda: come contare le occorrenze di valore specifico in una colonna

Aggiungi un commento

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