Nel panorama odierno della scienza dei dati, Python è emerso come uno degli strumenti più potenti e versatili. Al centro di questa popolarità c’è Pandas, una libreria open-source che fornisce strutture di dati flessibili e potenti per l’analisi dei dati. Questo articolo esplora le caratteristiche, i vantaggi e le applicazioni di Pandas, evidenziando il suo ruolo cruciale nella manipolazione e nell’analisi dei dati.
Indice dei contenuti
Cos’è Pandas?
Pandas è una libreria di Python sviluppata per semplificare la manipolazione e l’analisi di dati strutturati (tabulari). Originariamente creata da Wes McKinney nel 2008, Pandas offre due principali strutture di dati: Series
e DataFrame
. Queste strutture sono progettate per gestire dati etichettati e di tipo eterogeneo in modo efficiente, consentendo operazioni veloci e flessibili.
- Series: Un array monodimensionale etichettato, simile a una colonna di un foglio di calcolo o di una tabella SQL.
- DataFrame: Una struttura bidimensionale, simile a una tabella, che contiene una collezione di
Series
con lo stesso indice.
Caratteristiche Principali
-
Manipolazione dei Dati
- Indicizzazione e Selezione: Pandas offre potenti strumenti di indicizzazione e selezione, permettendo l’accesso a porzioni specifiche dei dati tramite etichette o posizioni.
- Raggruppamento e Aggregazione: Funzioni come
groupby()
consentono di raggruppare dati in base a una o più colonne e di eseguire operazioni di aggregazione come somma, media e conteggio. - Unione e Fusione: Con
merge()
,join()
econcat()
, è possibile combinare più DataFrame in modo intuitivo e flessibile.
-
Pulizia dei Dati
- Gestione dei Valori Mancanti: Funzioni come
fillna()
edropna()
permettono di gestire i valori mancanti in modo efficiente, riempiendoli con valori specifici o rimuovendoli. - Rimozione dei Duplicati:
drop_duplicates()
è utile per identificare e rimuovere i dati duplicati, garantendo l’integrità dei dataset.
- Gestione dei Valori Mancanti: Funzioni come
-
Analisi dei Dati
- Statistiche Descrittive: Funzioni come
describe()
forniscono una panoramica delle statistiche descrittive dei dati, tra cui media, mediana, deviazione standard e quartili. - Analisi Temporale: Pandas gestisce in modo nativo i dati temporali, consentendo operazioni avanzate come la resampling, la differenziazione e il calcolo delle statistiche sui dati temporali.
- Statistiche Descrittive: Funzioni come
Vantaggi di Pandas
- Facilità d’Uso: L’interfaccia di Pandas è intuitiva e simile a quella di strumenti come Excel, rendendola accessibile anche a chi non ha una profonda conoscenza della programmazione.
- Prestazioni: Pandas è costruito su NumPy, il che permette di sfruttare operazioni vettoriali efficienti e di gestire grandi dataset in modo veloce.
- Compatibilità: Pandas si integra facilmente con altre librerie scientifiche di Python come NumPy, SciPy, Matplotlib e scikit-learn, creando un ecosistema completo per la scienza dei dati.
Applicazioni
- Finanza: Analisi di dati finanziari, gestione di portafogli e calcolo di indicatori di performance.
- Ricerca Accademica: Gestione di dati sperimentali, analisi statistica e visualizzazione dei risultati.
- Marketing: Segmentazione dei clienti, analisi delle vendite e ottimizzazione delle campagne di marketing.
- Sanità: Analisi dei dati clinici, monitoraggio delle malattie e previsione degli esiti dei pazienti.
Esempio in Python
Supponiamo di avere un file CSV chiamato dati.csv con i seguenti dati:
Nome,Età,Professione,Salario
Luca,29,Ingegnere,50000
Maria,35,Medico,75000
Giulia,42,Professore,60000
Marco,28,Designer,45000
Passaggio 1: Importare la Libreria Pandas
import pandas as pd
Passaggio 2: Caricare il Dataset
# Caricare il dataset da un file CSV df = pd.read_csv('dati.csv') # Mostrare i dati caricati print(df)
Passaggio 3: Visualizzare Informazioni di Base
# Visualizzare le prime righe del dataset print(df.head()) # Ottenere informazioni generali sul dataset print(df.info()) # Calcolare le statistiche descrittive print(df.describe())
Passaggio 4: Manipolare i Dati
# Aggiungere una nuova colonna con il calcolo del salario annuale df['Salario_Annuale'] = df['Salario'] * 12 # Filtrare i dati per ottenere solo le persone con più di 30 anni over_30 = df[df['Età'] > 30] print(over_30)
Passaggio 5: Raggruppare e Aggregare i Dati
# Raggruppare per professione e calcolare il salario medio salario_medio_per_professione = df.groupby('Professione')['Salario'].mean() print(salario_medio_per_professione)
Codice Completo
import pandas as pd # Caricare il dataset da un file CSV df = pd.read_csv('dati.csv') # Mostrare i dati caricati print("Dataset caricato:") print(df) # Visualizzare le prime righe del dataset print("\nPrime righe del dataset:") print(df.head()) # Ottenere informazioni generali sul dataset print("\nInformazioni generali sul dataset:") print(df.info()) # Calcolare le statistiche descrittive print("\nStatistiche descrittive del dataset:") print(df.describe()) # Aggiungere una nuova colonna con il calcolo del salario annuale df['Salario_Annuale'] = df['Salario'] * 12 # Mostrare il dataset con la nuova colonna print("\nDataset con Salario Annuale:") print(df) # Filtrare i dati per ottenere solo le persone con più di 30 anni over_30 = df[df['Età'] > 30] print("\nPersone con più di 30 anni:") print(over_30) # Raggruppare per professione e calcolare il salario medio salario_medio_per_professione = df.groupby('Professione')['Salario'].mean() print("\nSalario medio per professione:") print(salario_medio_per_professione)
Output Atteso
Dataset caricato:
Nome Età Professione Salario
0 Luca 29 Ingegnere 50000
1 Maria 35 Medico 75000
2 Giulia 42 Professore 60000
3 Marco 28 Designer 45000
Prime righe del dataset:
Nome Età Professione Salario
0 Luca 29 Ingegnere 50000
1 Maria 35 Medico 75000
2 Giulia 42 Professore 60000
3 Marco 28 Designer 45000
Informazioni generali sul dataset:
<class ‘pandas.core.frame.DataFrame’>
RangeIndex: 4 entries, 0 to 3
Data columns (total 4 columns):
# Column Non-Null Count Dtype
— —— ————– —–
0 Nome 4 non-null object
1 Età 4 non-null int64
2 Professione 4 non-null object
3 Salario 4 non-null int64
dtypes: int64(2), object(2)
memory usage: 256.0+ bytes
None
Statistiche descrittive del dataset:
Età Salario
count 4.000000 4.0
mean 33.500000 57500.0
std 6.701989 13163.3
min 28.000000 45000.0
25% 28.750000 48750.0
50% 32.000000 55000.0
75% 36.750000 63750.0
max 42.000000 75000.0
Dataset con Salario Annuale:
Nome Età Professione Salario Salario_Annuale
0 Luca 29 Ingegnere 50000 600000
1 Maria 35 Medico 75000 900000
2 Giulia 42 Professore 60000 720000
3 Marco 28 Designer 45000 540000
Persone con più di 30 anni:
Nome Età Professione Salario Salario_Annuale
1 Maria 35 Medico 75000 900000
2 Giulia 42 Professore 60000 720000
Salario medio per professione:
Professione
Designer 45000.0
Ingegnere 50000.0
Medico 75000.0
Professore 60000.0
Name: Salario, dtype: float64
Questo esempio illustra alcune delle operazioni fondamentali che puoi eseguire con Pandas per manipolare e analizzare i dati. Puoi espandere queste tecniche per adattarle a dataset più complessi e analisi più sofisticate.
Conclusione
Pandas ha trasformato il modo in cui i dati vengono manipolati e analizzati in Python. La sua capacità di gestire dati eterogenei e strutturati con facilità e efficienza lo rende uno strumento indispensabile per scienziati dei dati, analisti e ricercatori. Con il continuo sviluppo e l’aggiornamento della libreria, Pandas rimarrà al centro dell’ecosistema della scienza dei dati, facilitando nuove scoperte e innovazioni in vari settori.