single
Raggruppamento Avanzato
Scorri per mostrare il menu
Approfondimento sul metodo .groupby(). Come ricorderai, possiamo utilizzare il metodo .agg(). Il principale vantaggio di questa funzione è la sua flessibilità: permette di applicare più aggregazioni diverse a più colonne contemporaneamente, restituendo una tabella riepilogativa ordinata.
Osserva l'esempio qui sotto. Abbiamo raggruppato i voli per 'Airline'. Poi, usando .agg(), abbiamo contato il numero totale di voli (utilizzando la colonna 'Delay') e contemporaneamente trovato la durata minima e massima dei voli (utilizzando la colonna 'Length'). Molto pratico, vero?
1234import pandas as pd data = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/4bf24830-59ba-4418-969b-aaf8117d522e/plane', index_col = 0) data_flights = data.groupby('Airline').agg({'Delay': 'count', 'Length': ['min', 'max']}) print(data_flights.head(10))
Spiegazione:
.agg({'Delay': 'count', 'Length': ['min', 'max']})
.agg(): Abbreviazione di "aggregate". Questo metodo prende i dati raggruppati e li condensa in statistiche di riepilogo in base alle regole fornite.{}: Si utilizza un dizionario Python per associare colonne specifiche a operazioni specifiche. Le chiavi sono i nomi delle colonne da selezionare, i valori sono le funzioni da applicare.'Delay': 'count': Indica a pandas di applicare la funzione count alla colonna'Delay'per ogni gruppo. Nota che si passa l'alias stringa'count'invece di scriverecount(). Pandas riconosce questi nomi standard per le statistiche comuni.'Length': ['min', 'max']: Se si desidera applicare più di una funzione a una singola colonna, è necessario inserire i nomi delle funzioni all'interno di una lista[]. Qui calcoliamo sia il valore minimo che quello massimo per la colonna'Length'.
Poiché sono state applicate più funzioni, il DataFrame risultante creerà automaticamente colonne gerarchiche (MultiIndex). Vedrai Length al livello superiore, con min e max ordinatamente categorizzati sotto di esso.
Scorri per iniziare a programmare
Il tuo compito è approfondire l'analisi osservando i tempi medi e massimi di ritardo in base all'aeroporto di partenza e successivamente all'aeroporto di arrivo del volo. Analizza inoltre la lunghezza mediana del volo. Segui il seguente algoritmo:
Raggruppamento dei dati:
- Applica il metodo
.groupby()al datasetdata; - All'interno del metodo
.groupby(), inserisci le colonne'AirportFrom'e'AirportTo'; l'ordine è fondamentale; - Utilizzando il metodo
.agg(), calcola i valori aggregati: il valore medio e massimo nella colonna'Time', e il valore mediano della colonna'Length'.
Soluzione
Grazie per i tuoi commenti!
single
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione