Raggruppamento Avanzato
Approfondiamo la conoscenza del metodo .groupby()
. Come ricorderai, possiamo utilizzare il metodo .agg()
. In effetti, il principale vantaggio di questa funzione è che consente di applicare funzioni diverse alle colonne numeriche con una sola chiave di raggruppamento. Osserva l'esempio in cui abbiamo raggruppato i voli per la colonna 'Airline'
, quindi contato i valori in 'Delay'
per ciascuna 'Airline'
e calcolato i valori minimo e massimo per 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()
- metodo che consente di applicare funzioni su una serie o su ciascun elemento separatamente;{}
- si utilizzano le parentesi graffe per specificare la colonna e applicare direttamente le funzioni;'Delay': 'count'
- applica la funzione.count()
ai valori della colonna'Delay'
aventi la stessa chiave di gruppo;'Length': ['min', 'max']
- applica le funzioni.min()
e.max()
ai valori della colonna'Length'
aventi la stessa chiave di gruppo. È sufficiente inserire solo il nome della colonna senza i simboli()
o.
nella funzione. Nota bene: se si desidera applicare più funzioni alla stessa colonna, è necessario inserirle in una lista.
Swipe to start coding
Possiamo presumere che un ritardo dipenda dalla compagnia aerea o dall'aeroporto, ma approfondiamo ulteriormente e osserviamo i tempi medi e massimi di ritardo in base all'aeroporto da cui è partito il volo e poi all'aeroporto in cui è atterrato. Inoltre, osserva la lunghezza mediana del volo. Segui l'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
Can you explain what the output of this code would look like?
What other functions can I use with `.agg()` besides 'count', 'min', and 'max'?
How can I group by multiple columns using `.groupby()` and `.agg()`?
Awesome!
Completion rate improved to 3.03
Raggruppamento Avanzato
Scorri per mostrare il menu
Approfondiamo la conoscenza del metodo .groupby()
. Come ricorderai, possiamo utilizzare il metodo .agg()
. In effetti, il principale vantaggio di questa funzione è che consente di applicare funzioni diverse alle colonne numeriche con una sola chiave di raggruppamento. Osserva l'esempio in cui abbiamo raggruppato i voli per la colonna 'Airline'
, quindi contato i valori in 'Delay'
per ciascuna 'Airline'
e calcolato i valori minimo e massimo per 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()
- metodo che consente di applicare funzioni su una serie o su ciascun elemento separatamente;{}
- si utilizzano le parentesi graffe per specificare la colonna e applicare direttamente le funzioni;'Delay': 'count'
- applica la funzione.count()
ai valori della colonna'Delay'
aventi la stessa chiave di gruppo;'Length': ['min', 'max']
- applica le funzioni.min()
e.max()
ai valori della colonna'Length'
aventi la stessa chiave di gruppo. È sufficiente inserire solo il nome della colonna senza i simboli()
o.
nella funzione. Nota bene: se si desidera applicare più funzioni alla stessa colonna, è necessario inserirle in una lista.
Swipe to start coding
Possiamo presumere che un ritardo dipenda dalla compagnia aerea o dall'aeroporto, ma approfondiamo ulteriormente e osserviamo i tempi medi e massimi di ritardo in base all'aeroporto da cui è partito il volo e poi all'aeroporto in cui è atterrato. Inoltre, osserva la lunghezza mediana del volo. Segui l'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