1. Introduzione al raggruppamento dei dati
Principio del raggruppamento dei dati
Nella vita reale raggruppiamo spesso oggetti per certe caratteristiche: libri con libri, verdure con verdure, persone con persone (hai capito). In programmazione funziona allo stesso modo. Il raggruppamento dei dati ci permette di dividere grandi volumi di dati in parti più piccole e gestibili per poi analizzarle.
In pandas, questo si fa con il metodo groupby, che consente di dividere i dati in gruppi ed eseguire diverse operazioni su ciascun gruppo. Ad esempio, puoi raggruppare le vendite per reparto di un negozio e calcolare il ricavo totale per ogni reparto.
Ecco un esempio di come potrebbe apparire:
import pandas as pd
# Creiamo un DataFrame con i dati delle vendite
data = {'Reparto': ['Prodotti', 'Tecnologia', 'Prodotti', 'Libri', 'Tecnologia'],
'Ricavo': [100, 200, 150, 50, 300]}
df = pd.DataFrame(data)
# Raggruppiamo i dati per reparto e calcoliamo il ricavo totale
gruppo = df.groupby('Reparto')['Ricavo'].sum()
print(gruppo)
Esempi di utilizzo del raggruppamento
Il raggruppamento è particolarmente utile quando devi confrontare i dati tra diverse categorie. Ad esempio, se lavori nelle risorse umane e vuoi conoscere lo stipendio medio nei diversi reparti di un'azienda, o se sei un marketer e ti interessa sapere in quale mese c'è stato il maggior numero di vendite per ogni prodotto. Questi compiti diventano molto più semplici grazie alle funzionalità di raggruppamento in pandas.
2. Calcolo delle funzioni aggregate
Introduzione alle funzioni aggregate
Le funzioni aggregate sono funzioni speciali applicate a un gruppo di dati che restituiscono un unico valore. Le più comuni sono sum (somma), mean (media) e count (conteggio elementi). Permettono di sintetizzare una grande quantità di informazioni in metriche più semplici e comprensibili.
Utilizzo delle funzioni aggregate
Abbiamo già visto come calcolare la somma nell'esempio precedente. Ora vediamo come calcolare la media e il numero di vendite per reparto.
# Calcoliamo il ricavo medio per reparto
media = df.groupby('Reparto')['Ricavo'].mean()
print(media)
# Contiamo il numero di vendite per reparto
conteggio = df.groupby('Reparto')['Ricavo'].count()
print(conteggio)
Esempi di calcolo degli aggregati
Supponiamo di avere dati sulla frequenza degli utenti su un sito web e vogliamo capire quante persone in media accedono al sito ogni giorno della settimana. Questo è un classico caso di raggruppamento e utilizzo della funzione mean.
data = {'Giorno': ['Lun', 'Mar', 'Mer', 'Gio', 'Ven', 'Mer', 'Mar'],
'Visite': [120, 150, 170, 160, 180, 300, 220]}
df = pd.DataFrame(data)
# Calcoliamo il numero medio di visite per giorno
media_visite = df.groupby('Giorno')['Visite'].mean()
print(media_visite)
3. Lavoro pratico
Esercizio su raggruppamento e calcolo degli aggregati
Supponiamo di avere un insieme di dati sulle vendite. Compito: raggrupparli per categorie e calcolare le vendite totali, il costo medio degli ordini e il numero di ordini per ogni categoria. Questo ti aiuterà a capire quali categorie di prodotti generano il maggior profitto e dove si nascondono le potenziali "miniere d'oro".
data = {
'Categoria': ['Elettronica', 'Abbigliamento', 'Elettronica', 'Libri', 'Libri', 'Abbigliamento'],
'Importo_ordine': [250, 100, 150, 200, 500, 300]
}
df = pd.DataFrame(data)
# Calcoliamo le vendite totali per categoria
somma = df.groupby('Categoria')['Importo_ordine'].sum()
print(somma)
# Calcoliamo il costo medio degli ordini per categoria
costo_medio = df.groupby('Categoria')['Importo_ordine'].mean()
print(costo_medio)
# Contiamo il numero di ordini per categoria
numero_ordini = df.groupby('Categoria')['Importo_ordine'].count()
print(numero_ordini)
Discussione dei risultati del raggruppamento e analisi dei dati
Dopo aver completato il compito sul raggruppamento dei dati e il calcolo degli aggregati, è molto utile analizzare i dati ottenuti. Potresti notare, ad esempio, che la categoria "Libri" ha l'importo di ordine più alto grazie a un piccolo numero di grandi ordini. Oppure che "Abbigliamento" ha il maggior numero di ordini, ma il costo medio per ordine è inferiore rispetto a "Elettronica".
Un'analisi di questo tipo può aiutarti a prendere decisioni aziendali informate, come concentrarti sull'aumento della dimensione media degli ordini nella categoria con il maggior numero di ordini ma con un costo medio inferiore.
4. Errori e particolarità
Quando si lavora con il raggruppamento, uno degli errori più comuni è dimenticare di utilizzare le parentesi tonde durante l'applicazione delle funzioni aggregate. Ad esempio, scrivere df.groupby('Categoria').sum() invece di df.groupby('Categoria')['Importo_ordine'].sum(). Inoltre, a volte si verificano problemi con i dati mancanti. Pandas offre metodi comodi per gestire i valori mancanti, come fillna(), che consente di sostituire i valori mancanti con quelli desiderati per evitare distorsioni nei calcoli.
Inoltre, assicurati che i tipi di dati siano corretti. A volte le colonne numeriche possono essere lette come stringhe, e tentando di aggregare tali dati, si verificheranno errori.
Se hai bisogno di approfondire il lavoro con pandas e i metodi di raggruppamento, consulta la documentazione ufficiale di pandas per ulteriori dettagli e esempi.
GO TO FULL VERSION