Pandas to_csv() – Converti DataFrame in CSV

Pandas to_csv() – Converti DataFrame in CSV

Il metodo to_csv() della libreria Pandas consente di convertire un DataFrame in un file CSV (Comma-Separated Value). Questo formato viene spesso utilizzato per scambiare dati tra diversi sistemi o programmi software, poiché è un formato semplice e facilmente leggibile.

Introduzione

Un DataFrame è una struttura dati bidimensionale in Pandas, composta da righe e colonne. Ciascuna riga rappresenta una singola osservazione, mentre ciascuna colonna rappresenta una variabile. Il metodo to_csv() consente di convertire un DataFrame in un file di testo in cui i dati sono separati da virgole.

Sintassi

La sintassi del metodo to_csv() è la seguente:


DataFrame.to_csv(path_or_buf=None, sep=',', na_rep='', float_format=None, columns=None, header=True, index=True, index_label=None, mode='w', encoding=None, compression=None, quoting=None, quotechar='"', line_terminator='\n', chunksize=None, date_format=None, doublequote=True, escapechar=None, decimal='.')

Parametri

I parametri più comuni del metodo to_csv() sono:

path_or_buf: il percorso o il buffer in cui salvare il file CSV.
sep: il carattere separatore utilizzato tra i valori nel file CSV.
na_rep: il valore utilizzato per rappresentare i valori mancanti nel DataFrame.
float_format: il formato utilizzato per salvare i valori float nel file CSV.
columns: una lista dei nomi delle colonne da includere nel file CSV.
header: un valore booleano che indica se includere o meno l’intestazione nel file CSV.
index: un valore booleano che indica se includere o meno l’indice nel file CSV.
index_label: un’etichetta da utilizzare per l’indice nel file CSV.
mode: la modalità di apertura del file CSV ('w' per la scrittura, 'a' per l’append).
encoding: la codifica del file CSV.
compression: il metodo di compressione da utilizzare per il file CSV ('gzip', 'bz2', 'zip').
quoting: il tipo di quoting da utilizzare per i valori nel file CSV ('quote_all', 'quote_minimal', 'quote_none').
quotechar: il carattere utilizzato per le virgolette nel file CSV.
line_terminator: il terminatore di linea utilizzato nel file CSV.
chunksize: la dimensione dei blocchi in cui scrivere il file CSV.
date_format: il formato utilizzato per salvare le date nel file CSV.
doublequote: un valore booleano che indica se utilizzare o meno le virgolette doppie per racchiudere i valori nel file CSV.
escapechar: il carattere utilizzato per l’escape dei caratteri nel file CSV.
decimal: il carattere utilizzato per separare la parte intera da quella decimale dei valori float nel file CSV.

Esempio

Il seguente esempio mostra come convertire un DataFrame in un file CSV utilizzando il metodo to_csv():

python
import pandas as pd

Crea un DataFrame

df = pd.DataFrame({
'Nome': ['John', 'Mary', 'Bob'],
'Età': [20, 25, 30]
})

Converte il DataFrame in un file CSV

df.to_csv('persone.csv', index=False)

Questo creerà un file CSV denominato persone.csv nel formato seguente:


Nome,Età
John,20
Mary,25
Bob,30

Opzioni avanzate

Scrivere in un buffer

Il metodo to_csv() può anche essere utilizzato per scrivere i dati in un buffer, specificando il parametro path_or_buf come oggetto-like di tipo file:

python
import io

Crea un buffer

buffer = io.StringIO()

Converte il DataFrame in un buffer

df.to_csv(buffer)

Recupera i dati dal buffer

dati = buffer.getvalue()

Utilizzo del parametro compression

Il parametro compression può essere utilizzato per comprimere il file CSV utilizzando uno dei seguenti metodi:

'gzip'
'bz2'
'zip'

Ad esempio, per comprimere il file CSV con il metodo GZip, utilizzare il seguente codice:

python
df.to_csv('persone.csv', compression='gzip')

Utilizzo del parametro quoting

Il parametro quoting può essere utilizzato per controllare il modo in cui i valori nel file CSV vengono racchiusi tra virgolette. Le opzioni disponibili sono:

'quote_all': racchiude tutti i valori tra virgolette
'quote_minimal': racchiude tra virgolette solo i valori che contengono separatori o caratteri di nuova riga
'quote_none': non racchiude nessun valore tra virgolette

Ad esempio, per racchiudere tra virgolette tutti i valori nel file CSV, utilizzare il seguente codice:

python
df.to_csv('persone.csv', quoting='quote_all')

Conclusione

Il metodo to_csv() della libreria Pandas è uno strumento potente per convertire i DataFrame in file CSV. Offre una vasta gamma di opzioni per personalizzare l’output, come la possibilità di specificare separatori, quotazioni, intestazioni e indici. Comprendendo i parametri e le opzioni disponibili, è possibile utilizzare il metodo to_csv() per esportare facilmente i dati Pandas in un formato adatto per l’archiviazione, l’analisi e la condivisione.

FAQ

1. Come specificare un separatore diverso da una virgola nel file CSV?
È possibile utilizzare il parametro sep del metodo to_csv() per specificare un separatore diverso. Ad esempio, per utilizzare un punto e virgola come separatore, utilizzare il seguente codice:
python
df.to_csv('persone.csv', sep=';')

2. Come evitare di scrivere l’intestazione nel file CSV?
È possibile utilizzare il parametro header del metodo to_csv() per impostare un valore booleano False e evitare di scrivere l’intestazione nel file CSV. Ad esempio:
python
df.to_csv('persone.csv', header=False)

3. Come scrivere i valori float con una formattazione specifica nel file CSV?
È possibile utilizzare il parametro float_format del metodo to_csv() per specificare il formato di formattazione dei valori float. Ad esempio, per utilizzare due cifre decimali, utilizzare il seguente codice:
python
df.to_csv('persone.csv', float_format='%.2f')

4. Come comprimere il file CSV utilizzando il metodo GZip?
È possibile utilizzare il parametro compression del metodo to_csv() per impostare il valore ‘gzip’ e comprimere il file CSV utilizzando il metodo GZip. Ad esempio:
python
df.to_csv('persone.csv', compression='gzip')

5. Come racchiudere tra virgolette tutti i valori nel file CSV?
È possibile utilizzare il parametro quoting del metodo to_csv() per impostare il valore 'quote_all' e racchiudere tra virgolette tutti i valori nel file CSV. Ad esempio:
python
df.to_csv('persone.csv', quoting='quote_all')

6. Come personalizzare l’etichetta dell’indice nel file CSV?
È possibile utilizzare il parametro index_label del metodo to_csv() per specificare un’etichetta personalizzata per l’indice nel file CSV. Ad esempio, per utilizzare l’etichetta “ID” per l’indice, utilizzare il seguente codice:
python
df.to_csv('persone.csv', index_label='ID')

7. Come scrivere i dati in un buffer anziché in un file?
È possibile utilizzare il parametro path_or_buf del metodo to_csv() per specificare un oggetto-like di tipo file come buffer. Ad esempio, per scrivere i dati in un buffer:
python
buffer = io.StringIO()
df.to_csv(buffer)

8. Come utilizzare più intestazioni o indici nel file CSV?
Per utilizzare più intestazioni o indici, è necessario impostare il parametro header o index del metodo to_csv() su una lista. Ad