Importare un file JSON in Pandas
Oltre a lavorare con file CSV, Pandas supporta anche l'importazione di dati in formato JSON (JavaScript Object Notation), un formato di dati molto popolare per la sua leggerezza e la facilità d'uso.
Il formato JSON è ampiamente utilizzato nelle API, nei file di configurazione e nei database NoSQL, rendendolo una scelta comune per la gestione dei dati. Pandas offre strumenti semplici e potenti per convertire JSON in DataFrame, una struttura tabellare che facilita l'analisi e la manipolazione dei dati. Questa conversione è utile soprattutto quando si lavora con grandi volumi di dati o si devono eseguire operazioni complesse su di essi.
Un file JSON è costituito da coppie chiave-valore, che possono essere annidate in oggetti e array. Ecco un esempio semplice di dati JSON:
[
{"nome": "Alice", "età": 25, "città": "Roma"},
{"nome": "Bob", "età": 30, "città": "Milano"},
{"nome": "Charlie", "età": 35, "città": "Torino"}
]
Importare un JSON in Pandas
Pandas offre una funzione integrata chiamata read_json() per importare file JSON. Questa funzione è estremamente versatile e supporta diverse configurazioni di file JSON.
Ecco un esempio di come importare un file JSON in un DataFrame:
import pandas as pd
# Importazione del file JSON in un DataFrame
df = pd.read_json('percorso/al/tuo/file.json')
# Visualizzazione delle prime righe del DataFrame
print(df.head())
Oltre ai file JSON, Pandas permette di importare dati JSON direttamente da una stringa JSON. Questo è utile quando i dati vengono forniti sotto forma di stringa, ad esempio dalle API.
import pandas as pd
import json
# Stringa JSON
data = '''
[
{"nome": "Alice", "età": 25, "città": "Roma"},
{"nome": "Bob", "età": 30, "città": "Milano"}
]
'''
# Conversione della stringa JSON in un DataFrame
df = pd.read_json(data)
# Visualizzazione delle prime righe del DataFrame
print(df.head())
In molti casi, i file JSON possono avere una struttura annidata, con liste o dizionari all'interno di altri dizionari. Pandas offre strumenti per lavorare con questi dati, ma potrebbe essere necessario un ulteriore pre-processamento.
Quando i dati JSON sono annidati, Pandas può gestirli automaticamente fino a un certo livello, ma per strutture molto complesse potrebbe essere necessario "appiattire" i dati.
Consideriamo, ad esempio, il seguente JSON annidato:
{
"nome": "Alice",
"età": 25,
"indirizzo": {
"città": "Roma",
"CAP": "00100"
}
}
Per convertire questo tipo di JSON in un DataFrame, potresti dover ricorrere a tecniche avanzate come l'uso della libreria json_normalize di Pandas:
import pandas as pd
from pandas import json_normalize
# JSON annidato
data = {
"nome": "Alice",
"età": 25,
"indirizzo": {"città": "Roma", "CAP": "00100"}
}
# Normalizzazione del JSON annidato in un DataFrame
df = json_normalize(data)
print(df)