Archiviazione efficiente dei dati raccolti
Salvataggio in CSV/JSON/Parquet, aggiunta sicura, deduplicazione e raccolta incrementale.
Archiviazione efficiente dei dati raccolti è una lezione Learn AI with Python gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Learn AI with Python, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Learn AI with Python include 4 lezioni in totale.
Dalle risposte grezze ai dati salvati
Dopo aver raccolto i dati, è necessario salvarli per poterli ricaricare, condividere e analizzare. Il formato giusto e alcune buone pratiche fanno una grande differenza in termini di velocità e spazio su disco.
Questa lezione tratta CSV, Parquet, l'aggiunta di batch e la deduplicazione.
Da JSON a DataFrame
Le risposte delle API sono solitamente liste di dizionari. pd.DataFrame le trasforma direttamente in una tabella pronta per il salvataggio.
import pandas as pd
records = [
{"id": 1, "name": "A", "score": 9.5},
{"id": 2, "name": "B", "score": 8.0},
]
df = pd.DataFrame(records)
print(df)Salvare in CSV con df.to_csv
CSV è un formato universale e leggibile. Salvi con to_csv; passi index=False per evitare che l'indice delle righe venga scritto come colonna estranea.
df.to_csv("data.csv", index=False)
# Reload
df2 = pd.read_csv("data.csv")Limiti del CSV
Il CSV è comodo, ma presenta alcuni svantaggi per il lavoro con l'IA:
- Nessun tipo: tutto viene salvato come testo, quindi i dtypes vengono dedotti nuovamente al caricamento
- File voluminosi, senza compressione per impostazione predefinita
- Lettura lenta per i dataset di grandi dimensioni
Per dati più grandi o caricati ripetutamente, Parquet è una scelta migliore.
Salvare in Parquet con df.to_parquet
Parquet è un formato binario a colonne. Preserva i dtypes, offre una buona compressione e viene caricato molto più rapidamente del CSV.
Richiede un motore come pyarrow installato.
df.to_parquet("data.parquet", index=False)
df2 = pd.read_parquet("data.parquet")
print(df2.dtypes) # types preserved, no re-guessingCSV e Parquet — quale usare e quando
Regole pratiche:
- CSV: dati piccoli, condivisione con strumenti non Python, ispezione rapida
- Parquet: dati grandi, caricamenti ripetuti, fedeltà dei tipi, pipeline di analisi
Per i processi di raccolta che alimentano i modelli, preferisca Parquet.
Aggiungere nuovi batch con pd.concat
La raccolta avviene spesso in batch. Combini un DataFrame esistente con uno nuovo utilizzando pd.concat.
ignore_index=True riassegna i numeri dell'indice, mantenendolo ordinato.
new_batch = pd.DataFrame(new_records)
df = pd.concat([df, new_batch], ignore_index=True)
print(len(df))Aggiungere dati direttamente a un file CSV
Per aggiungere dati a un CSV esistente senza caricarlo, lo apra in modalità append e ometta l'intestazione nelle scritture successive.
import os
header = not os.path.exists("data.csv")
new_batch.to_csv("data.csv", mode="a", header=header, index=False)Perché eliminare i duplicati
La riesecuzione della raccolta, le pagine sovrapposte o i tentativi ripetuti possono creare righe duplicate. I duplicati gonfiano i conteggi e possono passare da una suddivisione train/test all'altra, peggiorando la valutazione del modello.
Esegua sempre la deduplicazione dopo aver combinato i batch.
drop_duplicates(subset=[id])
Utilizzi una chiave univoca stabile (spesso id) con drop_duplicates(subset=...). In questo modo rimuove le ripetizioni anche se gli altri campi sono cambiati leggermente.
keep="last" conserva la versione più recente di ogni id.
df = df.drop_duplicates(subset=["id"], keep="last").reset_index(drop=True)
print(len(df), "unique rows")Un helper per salvare e unire
Unisca i vari passaggi: carichi il file Parquet esistente, se presente, concateni il nuovo batch, elimini i duplicati in base all'id e salvi nuovamente il risultato. Può eseguire questa procedura più volte in sicurezza.
import os
import pandas as pd
def save_merge(new_df, path="data.parquet", key="id"):
if os.path.exists(path):
old = pd.read_parquet(path)
new_df = pd.concat([old, new_df], ignore_index=True)
new_df = new_df.drop_duplicates(subset=[key], keep="last")
new_df.to_parquet(path, index=False)
return new_dfVerifica rapida: scelta del formato
Carica ripetutamente un dataset di grandi dimensioni per l'addestramento del modello e ha bisogno di conservare i tipi di dati, con letture rapide.
Riepilogo: memorizzare i dati in modo efficiente
Ora sa come rendere persistenti i dati raccolti:
pd.DataFrameper trasformare i record JSON in una tabellato_csv(index=False)per il testo portabile,to_parquetper una memorizzazione tipizzata e velocepd.concat(ignore_index=True)o la modalità di aggiunta dei CSV per i batchdrop_duplicates(subset=["id"])per mantenere uniche le righe
Prossimo argomento: lavorare con API reali di dati pubblici.
Domande Frequenti
La lezione «Archiviazione efficiente dei dati raccolti» è gratuita?
Sì — il testo completo di «Archiviazione efficiente dei dati raccolti» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Learn AI with Python, passa a CoddyKit PRO. Il corso Learn AI with Python include 4 lezioni in totale.
Cosa imparerò in «Archiviazione efficiente dei dati raccolti»?
Salvataggio in CSV/JSON/Parquet, aggiunta sicura, deduplicazione e raccolta incrementale. Eserciti Learn AI with Python con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Learn AI with Python?
Non è richiesta alcuna esperienza precedente. Learn AI with Python su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.
Quanto tempo richiede la lezione «Archiviazione efficiente dei dati raccolti»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Learn AI with Python?
Sì. Ogni lezione Learn AI with Python include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Fondamenti delle API REST per la raccolta dei dati
- Paginazione e raccolta di grandi dataset
- Archiviazione efficiente dei dati raccolti
- Utilizzo delle API pubbliche per i dati