Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Raggruppamento Complesso | Aggregazione Dei Dati
Tecniche Avanzate in Pandas

bookRaggruppamento Complesso

A volte può capitare che le funzioni integrate di pandas, come .mean() o .min(), non siano sufficienti durante l'aggregazione dei dati.

Osserva la colonna 'Length'; qui abbiamo la durata del volo in minuti. Immagina di voler calcolare il tempo massimo in ore per gli elementi che hanno lo stesso valore nella colonna 'Flight' e poi in quella 'Airline'. Per farlo, possiamo calcolare il valore massimo della colonna 'Length' per ogni chiave di gruppo e poi dividerlo per 60. Consulta l'esempio e la spiegazione di seguito.

1234
import 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[['Flight', 'Airline', 'Length']].groupby(['Flight', 'Airline']).apply(lambda x: x['Length'].max()/60) print(data_flights.head(10))
copy

Spiegazione:

Abbiamo reso l'esempio dei capitoli precedenti leggermente più complesso; per quanto riguarda il raggruppamento dei dati, tutto rimane invariato. Passiamo ora al metodo .apply().

.apply(lambda x: x['Length'].max()/60)
  • .apply() - consente di applicare una funzione specifica alle colonne desiderate;
  • nella funzione lambda, x è l'argomento e x['Length'].max()/60 è l'espressione. La funzione trova il valore massimo per ogni chiave di gruppo e divide il valore aggregato per 60.
Compito

Swipe to start coding

Il tuo compito qui è raggruppare i dati in base all'aeroporto da cui è partito il volo e poi per giorno della settimana. Calcola il valore minimo della somma delle colonne dei gruppi 'Length' e 'Time' per determinare quanto può durare un volo con ritardo. Segui l'algoritmo per gestire il compito:

Raggruppa i dati:

  • Memorizza l'elenco delle colonne 'AirportFrom', 'Airline', 'Time' e 'Length' (in questo ordine) nella variabile columns;
  • Estrai columns da data;
  • L'ordine è fondamentale all'interno del metodo .groupby(); inserisci le colonne 'AirportFrom' e 'Airline' in questo ordine;
  • Applica la funzione ai valori del set di dati che hanno le stesse chiavi di gruppo;
  • Calcola la somma di due colonne: 'Length' e 'Time'. Poi trova il loro valore minimo.

Soluzione

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 4. Capitolo 3
single

single

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

Suggested prompts:

Can you explain what the output of this code will look like?

How does the `.apply()` method differ from using `.agg()` in this context?

Can you show how to reset the index of the resulting DataFrame?

close

Awesome!

Completion rate improved to 3.03

bookRaggruppamento Complesso

Scorri per mostrare il menu

A volte può capitare che le funzioni integrate di pandas, come .mean() o .min(), non siano sufficienti durante l'aggregazione dei dati.

Osserva la colonna 'Length'; qui abbiamo la durata del volo in minuti. Immagina di voler calcolare il tempo massimo in ore per gli elementi che hanno lo stesso valore nella colonna 'Flight' e poi in quella 'Airline'. Per farlo, possiamo calcolare il valore massimo della colonna 'Length' per ogni chiave di gruppo e poi dividerlo per 60. Consulta l'esempio e la spiegazione di seguito.

1234
import 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[['Flight', 'Airline', 'Length']].groupby(['Flight', 'Airline']).apply(lambda x: x['Length'].max()/60) print(data_flights.head(10))
copy

Spiegazione:

Abbiamo reso l'esempio dei capitoli precedenti leggermente più complesso; per quanto riguarda il raggruppamento dei dati, tutto rimane invariato. Passiamo ora al metodo .apply().

.apply(lambda x: x['Length'].max()/60)
  • .apply() - consente di applicare una funzione specifica alle colonne desiderate;
  • nella funzione lambda, x è l'argomento e x['Length'].max()/60 è l'espressione. La funzione trova il valore massimo per ogni chiave di gruppo e divide il valore aggregato per 60.
Compito

Swipe to start coding

Il tuo compito qui è raggruppare i dati in base all'aeroporto da cui è partito il volo e poi per giorno della settimana. Calcola il valore minimo della somma delle colonne dei gruppi 'Length' e 'Time' per determinare quanto può durare un volo con ritardo. Segui l'algoritmo per gestire il compito:

Raggruppa i dati:

  • Memorizza l'elenco delle colonne 'AirportFrom', 'Airline', 'Time' e 'Length' (in questo ordine) nella variabile columns;
  • Estrai columns da data;
  • L'ordine è fondamentale all'interno del metodo .groupby(); inserisci le colonne 'AirportFrom' e 'Airline' in questo ordine;
  • Applica la funzione ai valori del set di dati che hanno le stesse chiavi di gruppo;
  • Calcola la somma di due colonne: 'Length' e 'Time'. Poi trova il loro valore minimo.

Soluzione

Switch to desktopCambia al desktop per esercitarti nel mondo realeContinua da dove ti trovi utilizzando una delle opzioni seguenti
Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 4. Capitolo 3
single

single

some-alt