Come usare pandas in Python - guida pratica ed esempi
20 Ottobre, 2025
0
0
In questa guida pratica a pandas per Python, scoprirai i concetti essenziali per l’analisi dei dati con DataFrame e Serie. Imparerai a importare, pulire e trasformare dataset reali con operazioni chiare e ripetibili. Con esempi concreti e consigli su spazi bianchi e separatori, costruirai un flusso di lavoro solido e comprensibile.
Obiettivo: farti usare pandas in modo sicuro e produttivo. Imparerai installazione, importazione, lettura di CSV/Excel, selezione e filtri, raggruppamenti, pulizia di spazi bianchi e gestione dei valori mancanti, con esempi semplici e buone pratiche riusabili.
Che cos’è pandas e come funziona?
pandas è una libreria Python per la manipolazione e l’analisi dei dati. Il suo fulcro è il DataFrame: una tabella con righe e colonne dotate di etichette, ideale per operazioni veloci e leggibili su dati eterogenei.
pandas è uno strumento di analisi e manipolazione dei dati, open source, veloce, potente e flessibile, basato sul linguaggio Python.
Un esempio di DataFrame con righe e colonne etichettate. · Lucasadvent · CC BY-SA 4.0 · Pandas dataframe.png
pandas-dev — Documentazione di pandas, 2024. Tradotto dall’inglese.Mostra testo originale
pandas is a fast, powerful, flexible and easy to use open source data analysis and manipulation tool, built on top of the Python programming language.
Due strutture principali: Serie (colonne 1D) e DataFrame (tabelle 2D). Con esse effettui selezioni, filtri, aggregazioni e unioni in poche righe leggibili, riducendo il codice “colla” e aumentando la chiarezza.
Per installarla rapidamente, esegui pip install pandas. In alternativa, con ambienti scientifici è comune usare conda. Mantieni un ambiente virtuale dedicato per isolare dipendenze e versioni.
<pre><code># con pip
pip install pandas
# con conda
conda install pandas
# import tipico
import pandas as pd
</code></pre>
Dopo l’import, l’alias pd rende il codice più conciso. Verifica la versione con pd.version per allineare esempi e comportamenti.
Passaggi essenziali rapidi
Installa pandas con pip o conda.
Importa la libreria come pd.
Crea un DataFrame da dict o file.
Leggi CSV/Excel impostando sep e header se serve.
Seleziona e filtra con loc, iloc e maschere booleane.
Pulisci spazi bianchi con str.strip e gestisci NaN.
Raggruppa e aggrega con groupby per riepiloghi.
Come leggere file CSV ed Excel?
Per leggere file CSV con pandas usa <code>pd.read_csv</code>; per Excel usa <code>pd.read_excel</code>. Il separatore predefinito dei CSV è la virgola (<code>sep=','</code>), ma puoi impostare altri separatori come <code>\t</code> (tab) o <code>;</code>.
<pre><code># CSV con separatore punto e virgola e spazio dopo il separatore
# skipinitialspace ignora lo spazio dopo il separatore
ordini = pd.read_csv("ordini.csv", sep=";", skipinitialspace=True, encoding="utf-8")
# Excel: selezione del foglio
x = pd.read_excel("vendite.xlsx", sheet_name="2024")
</code></pre>
Attenzione a encoding e formati numerici: se i decimali usano la virgola, imposta <code>decimal=","</code>; se ci sono separatori delle migliaia, usa <code>thousands</code>. Se la prima riga non è l’intestazione, specifica <code>header=None</code> e fornisci <code>names=[...]</code>.
<pre><code># Decimali con virgola e migliaia con punto
prezzi = pd.read_csv(
"prezzi.csv", sep=";", decimal=",", thousands=".", encoding="utf-8"
)
</code></pre>
Se colonne o valori includono spazi indesiderati, potresti già mitigare in lettura con <code>skipinitialspace</code> o ripulire in seguito con funzioni stringa.
Come selezionare, filtrare e ordinare i dati?
La selezione per etichette si fa con .loc, quella per posizioni con .iloc. I filtri usano maschere booleane; l’ordinamento si ottiene con .sort_values. Queste operazioni, combinate, creano pipeline leggibili e sicure.
<pre><code># Selezione colonne e righe
subset = ordini.loc[ordini["stato"] == "chiuso", ["id", "cliente", "totale"]]
# Ordinamento
top = subset.sort_values("totale", ascending=False).head(10)
</code></pre>
Qual è la differenza tra loc e iloc?
.loc usa etichette di righe e colonne (inclusi booleani sul contenuto), mentre .iloc usa indici interi posizionali. loc è esplicito e leggibile; iloc è utile per slicing numerico e operazioni basate sulla posizione.
Quando usare groupby?
Usa groupby quando devi ottenere riepiloghi per categoria: somma vendite per cliente, medie per mese, conteggi per stato. Combinalo con agg per più metriche e con as_index=False per mantenere il risultato tabellare.
Gli spazi bianchi possono nascondersi in intestazioni e campi testuali, causando duplicati “fantasma” o confronti errati. Prima normalizza i nomi delle colonne, poi ripulisci i valori stringa; quindi tratta i NaN con regole coerenti.
<pre><code># Rimuovere spazi in testa/coda dalle intestazioni
df.columns = df.columns.str.strip()
# Rimuovere spazi in stringhe (solo colonne oggetto)
obj_cols = df.select_dtypes(include="object").columns
df[obj_cols] = df[obj_cols].apply(lambda s: s.str.strip())
# Consolidare spazi interni multipli in uno
df["cliente"] = df["cliente"].str.replace(r"\s+", " ", regex=True)
</code></pre>
Il metodo str.strip rimuove spazi iniziali e finali;
Video demo che mostra il funzionamento del gadget MiniEdit. · Sophivorus · CC BY-SA 4.0 · MiniEdit gadget demo.webm
str.replace con espressioni regolari riduce spazi multipli interni. Per i mancanti, usa dropna per escludere righe o fillna per sostituire con valori neutri o medie di colonna.
Questi suggerimenti ti aiutano a evitare trappole frequenti e a mantenere pipeline chiare e riproducibili.
Carica file grandi a blocchi con <code>chunksize</code>. Riduci la memoria leggendo solo colonne necessarie con <code>usecols</code>. Così verifichi logica e prestazioni su campioni prima di tutto il dataset.
Definisci i tipi in lettura (parametro <code>dtypes</code>) per evitare conversioni costose e ambigue. Tipi coerenti rendono i confronti più affidabili e riducono gli errori.
Evita assegnazioni ambigue: preferisci <code>.loc[cond, "col"] = valore</code>. Così eviti la SettingWithCopyWarning e garantisci che la modifica avvenga sulla struttura prevista.
Normalizza il time zone per le date. Usa <code>to_datetime(..., utc=True)</code> o converti con <code>dt.tz_convert</code> per confronti consistenti tra origini diverse.
Per unioni, verifica chiavi e cardinalità. merge sbagliati generano duplicazioni o perdite; usa <code>validate="one_to_one"</code> e controlla i conteggi prima e dopo.
Preferisci operazioni vettoriali a loop espliciti: sono più leggibili e molto più veloci. Usa <code>where</code>, <code>mask</code> e funzioni su colonne invece di <code>for</code>.
Rinomina colonne in modo consistente: minuscole, senza spazi, con underscore. Facilita selezioni e riduce refusi nelle pipeline.
Documenta le scelte con commenti brevi ma chiari. Una pipeline con motivazioni esplicite è più manutenibile e facile da verificare.
Domande frequenti
Pandas è adatto ai principianti?
Sì. L’API è leggibile e offre scorciatoie potenti. Inizia da read_csv, filtri con loc/iloc e groupby per riepiloghi; poi estendi a unioni e pulizia testi.
Qual è la differenza tra loc e iloc?
loc usa etichette di righe/colonne; iloc usa indici posizionali. loc è più esplicito sui nomi, iloc è utile per slicing numerico e selezioni basate sulla posizione.
Come gestisco separatori diversi dal comma?
Passa sep a read_csv, ad esempio sep=\t per tab o sep=";" per punto e virgola. Valuta anche skipinitialspace, decimal e thousands per un parsing coerente.
Come rimuovo spazi bianchi da tutte le colonne?
Usa df.columns = df.columns.str.strip() per le intestazioni. Per i valori testuali, applica .str.strip alle colonne di tipo object; per spazi interni multipli usa str.replace con regex.
Pandas o NumPy: cosa cambia?
NumPy gestisce array n-dimensionali numerici. Pandas aggiunge etichette, colonne eterogenee e operazioni tabellari (join, groupby), risultando più pratico per dati strutturati.
Come lavoro con file molto grandi?
Leggi a blocchi con chunksize, limita le colonne con usecols e imposta dtypes. Valuta formati binari come Parquet per letture e scritture più efficienti.
In sintesi operativa
pandas semplifica la manipolazione dati con DataFrame e Serie.
Importa con read_csv/read_excel; imposta sep, header ed encoding quando serve.
Seleziona con loc/iloc e filtra con maschere booleane.
Pulisci: rimuovi spazi bianchi, gestisci NaN e tipi coerenti.
Riepiloga con groupby e funzioni di aggregazione mirate.
Padroneggiare pandas richiede pratica su casi reali: parti da piccoli dataset, definisci obiettivi chiari e costruisci pipeline semplici. Salva i passaggi in script riutilizzabili e aggiungi test minimi per garantire risultati stabili nel tempo. Quando incontri ambiguità, semplifica e verifica con esempi ridotti.
Espandi gradualmente: prova unioni tra tabelle, colonne calcolate e salvataggi in formati diversi. Confronta sempre input e output, controlla i tipi e documenta le decisioni. Così svilupperai procedure affidabili e trasferibili tra progetti, mantenendo leggibilità e qualità dei dati.
Quest'articolo è stato scritto a titolo esclusivamente informativo e di divulgazione. Per esso non è possibile garantire che sia esente da errori o inesattezze, per cui l’amministratore di questo Sito non assume alcuna responsabilità come indicato nelle note legali pubblicate in Termini e Condizioni
Quanto è stato utile questo articolo?0Vota per primo questo articolo!