single
Raggruppamento Avanzato
Scorri per mostrare il menu
Approfondiamo la nostra conoscenza 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.
Guarda 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 comodo, 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 riepilogative 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, e 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.
Swipe to start coding
Il tuo compito è approfondire e analizzare i tempi medi e massimi di ritardo in base all'aeroporto di partenza del volo e successivamente all'aeroporto di arrivo. Inoltre, osserva 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