Vai al contenuto principale

Padroneggiare il metodo Pandas .explode(): una guida completa

Scopri tutto ciò che devi sapere sul metodo .explode() di pandas: colonne singole e multiple, gestione dei dati annidati ed errori comuni con esempi pratici di codice Python.
Aggiornato 29 set 2026  · 5 min leggi

Scopri con l'IA

ChatGPTClaudePerplexity

Nel mondo della manipolazione dei dati con pandas, il metodo .explode() è spesso uno strumento utile quando si lavora con liste all'interno dei DataFrame. Questo tutorial è un vademecum per padroneggiare il metodo .explode(), dalla meccanica di base alle applicazioni avanzate e agli errori più comuni.

La risposta breve: ecco come funziona .explode()

Se sei qui per una risposta veloce, leggi solo questa sezione. Il metodo .explode() è pensato per espandere gli elementi in una colonna di tipo lista su più righe, trasformando ogni elemento della lista in una riga separata. Per esempio, useremo il seguente DataFrame df per illustrare il processo:

ID

Interests

1

['Python', 'Data Science']

2

['Machine Learning', 'AI']

Il metodo .explode() espanderà gli elementi della colonna Interests, in questo modo:

# Explode the Interests column 
exploded_df = df.explode('Interests')

ID

Interests

1

Python

1

Data Science

2

Machine Learning

2

AI

Cos'è il metodo Pandas .explode()?

Il metodo .explode() è pensato per semplificare la gestione di dati annidati, come liste o tuple, all'interno dei DataFrame di pandas. Convertendo ogni elemento di una struttura simile a una lista in una riga separata, .explode() migliora l’accessibilità dei dati e li rende pronti per l’analisi.

Come funziona il metodo .explode()?

La funzionalità di .explode() è potente e al tempo stesso semplice, con particolare attenzione alla facilità d’uso e all’efficienza nei compiti di manipolazione dei dati.

  • Column: specifica la colonna con voci simili a liste da espandere.
  • ignore_index: se impostato su True, il metodo reimposta l’indice a un indice intero predefinito, aiutando a preservare l’integrità del DataFrame dopo l’espansione. Il valore predefinito è False.

Due modi per usare il metodo Pandas .explode()

Esplodere colonne singole in Pandas

Il caso d’uso più comune prevede l’esplosione di una singola colonna, espandendo di fatto ciascuna delle sue voci simili a liste in righe individuali. Nella sezione della risposta breve, abbiamo visto proprio questo. Rivediamo l’esempio. Qui abbiamo il DataFrame df, che contiene gli ID delle persone e i loro interessi di apprendimento. Come puoi vedere, gli interessi di apprendimento sono formattati come liste.

ID

Interests

1

['Python', 'Data Science']

2

['Machine Learning', 'AI']

Il metodo .explode() espanderà gli elementi della colonna Interests in righe individuali come segue:

# Explode the Interests column 
exploded_df = df.explode('Interests')

ID

Interests

1

Python

1

Data Science

2

Machine Learning

2

AI

Questo metodo è particolarmente utile per colonne che contengono dati categoriali o più attributi per osservazione.

Esplodere più colonne in Pandas

Potresti anche imbatterti in scenari in cui devi esplodere più colonne all’interno di un DataFrame. Ciò è particolarmente utile quando si lavora con dataset in cui più colonne contengono strutture simili a liste da espandere contemporaneamente. Aggiungiamo una colonna Tools a df per illustrarlo:

ID

Interests

Tools

1

['Python', 'Data Science']

['Pandas', 'NumPy']

2

['Machine Learning', 'AI']

['Scikit-learn', 'TensorFlow']

Per esplodere più colonne, inserisci semplicemente in una lista le colonne specificate da esplodere

# Explode the Interests & Tools columns
exploded_df = df.explode(['Interests', 'Tools'])

ID

Interests

Tools

1

Python

Pandas

1

Data Science

NumPy

2

Machine Learning

Scikit-learn

2

AI

TensorFlow

Questo metodo è particolarmente utile quando si lavora con più colonne che contengono liste. Detto ciò, ci sono alcune insidie in cui potresti imbatterti lavorando con .explode(), che esploreremo nella sezione seguente.

Errori comuni nell'uso di Pandas .explode() e soluzioni

Colonne duplicate esplose

Un’insidia comune quando si lavora con .explode() è esplodere per sbaglio colonne duplicate durante l’uso del metodo. Ricorda: assicurati sempre che l’elenco delle colonne che aggiungi sia univoco!

# Incorrect, exploding duplicate columns
df.explode(['Interests','Tools','Interests'])

# Correct, exploding unique columns
df.explode(['Interests','Tools'])

Esplodere stringhe che sembrano liste

Spesso, potresti avere righe nei tuoi DataFrame che sono stringhe ma sembrano liste. Tentare di esplodere una colonna con stringhe che assomigliano a liste, come "['Python', 'AI']", non produce alcun cambiamento perché il metodo .explode() si aspetta oggetti realmente simili a liste, non stringhe che sembrano liste. Ecco un esempio di come potrebbe apparire e una soluzione! Immaginiamo che df abbia i seguenti valori:

ID

Interests

1

"['Python', 'Data Science']"

2

"['Machine Learning', 'AI']"

Come puoi vedere, la colonna Interests ha valori che sono stringhe che sembrano liste. Usare .explode() su Interests non comporterebbe alcun cambiamento poiché i valori sono stringhe singole. Per risolvere, convertiamo i valori di Interests in liste.

import ast

df['Interests'] = df['Interests'].apply(ast.literal_eval)
exploded_df = df.explode('Interests')
print(exploded_df) # This will work

Lunghezze non corrispondenti in più colonne

Quando lavori con i DataFrame di pandas, un’insidia comune è imbattersi in righe in cui le strutture simili a liste nelle colonne specificate per l’esplosione hanno lunghezze non corrispondenti. Questa discrepanza può portare a dati disallineati o incompleti dopo l’uso del metodo .explode() su più colonne. Ad esempio, immaginiamo che df sia così:

ID

Interests

Tools

1

['Python', 'Data Science']

['Pandas']

2

['Machine Learning']

['Scikit-learn', 'TensorFlow']

Come si vede, le colonne Interests e Tools contengono liste di lunghezze diverse. Usare .explode() su queste colonne così com’è genererebbe un errore, poiché le colonne devono avere un numero corrispondente di valori nelle liste. Per risolvere, puoi riempire le liste con None usando una funzione personalizzata, come qui:

​​# Function to pad lists to the same length
def pad_lists(row):
    max_len = max(len(row['Interests']), len(row['Tools']))
    row['Interests'] += [None] * (max_len - len(row['Interests']))
    row['Tools'] += [None] * (max_len - len(row['Tools']))
    return row

# Apply the padding function to each row
df = df.apply(pad_lists, axis=1)

# Now, safely explode both columns
df.explode(['Interests','Tools'])

ID

Interests

Tools

1

Python

Pandas

1

Data Science

None

2

Machine Learning

Scikit-learn

2

None

TensorFlow

Considerazioni finali

In sintesi, il metodo .explode() è utile per spacchettare gli elementi di una lista di valori come righe in un DataFrame Pandas. Per approfondire pandas, dai un’occhiata alle seguenti risorse:


Adel Nehme's photo
Author
Adel Nehme
LinkedIn

Adel è un formatore e speaker in Data Science, nonché VP dei Media presso DataCamp. Adel ha pubblicato diversi corsi e sessioni di formazione live su analisi dei dati, machine learning e data engineering. È appassionato di diffondere competenze e alfabetizzazione sui dati all'interno delle organizzazioni e di esplorare l'intersezione tra tecnologia e società. Ha un MSc in Data Science and Business Analytics. Nel tempo libero, lo trovi spesso in compagnia del suo gatto Louis.

Argomenti
Python

Inizia oggi il tuo percorso con Pandas!

Corso

Manipolazione dei dati con pandas

4 ore
565.8K
Impara a importare e pulire dati, calcolare statistiche e creare visualizzazioni con pandas.
Vedi i dettagliRight Arrow
Inizia Il Corso
Mostra altroRight Arrow
Correlato

blog

Che cos'è Snowflake? Guida per principianti alla piattaforma dati cloud

Esplora le basi di Snowflake, la piattaforma dati cloud. Scopri la sua architettura, le sue funzionalità e come integrarla nelle tue pipeline di dati.
Tim Lu's photo

Tim Lu

12 min

blog

Tokenizzazione nel NLP: come funziona, sfide e casi d'uso

Guida al preprocessing NLP nel machine learning. Copriamo spaCy, i transformer di Hugging Face e come funziona la tokenizzazione in casi d'uso reali.
Abid Ali Awan's photo

Abid Ali Awan

10 min

blog

I 15 migliori server MCP remoti che ogni AI builder dovrebbe conoscere nel 2026

Scopri i 15 migliori server MCP remoti che stanno trasformando lo sviluppo AI nel 2026. Scopri come migliorano automazione, ragionamento, sicurezza e velocità dei workflow.
Abid Ali Awan's photo

Abid Ali Awan

15 min

Mostra AltroMostra Altro