• analiticas
  • Posts
  • Come esportare i dati in .csv con pandas

Come esportare i dati in .csv con pandas

Esporta i tuoi dataframe in un formato universale

A volte esportare i dati in Excel non basta. Vuoi perché questi dati devono essere caricati su un’applicazione (un sistema di email marketing, un CRM, ecc.) o perché quella è la policy aziendale, ci serve il formato .csv (comma-separate value).

In questa micro-lezione vedremo come esportare un dataframe in formato .csv con pandas.

La libreria e il dataframe

Importiamo la libreria pandas:

import pandas as pd

Ceiamo adesso un dataframe di esempio:

df = pd.DataFrame({
    'nome': ['Anna', 'Marco', 'Giulia'],
    'età': [25, 30, 28],
    'città': ['Roma', 'Milano', 'Napoli']
})

Ecco qui il suo aspetto:

nome

età

città

Anna

25

Roma

Marco

30

Milano

Giulia

28

Napoli

Esportare in formato .csv

Per esportare il nostro dataframe in un file di formato .csv, ci basterà usare il comando to_csv().

Vediamo come:

df.to_csv('file.csv')

Con una sola riga di codice, abbiamo creato un file .csv chiamato 'file.csv'.

Il file sarà salvato nella stessa cartella (o location) del nostro script Python.

I parametri avanzati

Vediamo rapidamente come personalizzare il nostro export, così da ottenere il risultato che ci serve.

Infatti, to_csv() ha diversi parametri che possiamo modificare.

Omettere l’indice

Come forse già saprai, ogni dataframe creato con pandas ha una colonna che funge da indice. Questa colonna viene aggiunta di default al nostro dataframe e appare per prima.

Il ruolo dell’indice è di facilitare delle operazioni che possiamo eseguire con pandas. Quindi, nel caso di un export, potrebbe non servire a nulla.

Come escludiamo l’indice dall’export in formato .csv? Ci basta fare così:

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

Specificare il percorso del file .csv

Come detto in precedenza, il file .csv viene salvato nella stessa cartella che ospita lo script Python o il Notebook che stiamo eseguendo.

Per cambiare la destinazione del file, ci basta specificare il suo percorso:

df.to_csv('/Users/path/file.csv')

Cambiare il separatore

Di default, to_csv() usa la virgola come separatore per il nostro file .csv.

Se preferisci un altro carattere, puoi specificarlo così:

df.to_csv('file.csv', sep=';')

Specificare l'encoding

Se per qualche ragione il file .csv dà problemi legati ai caratteri speciali, possiamo specificare il parametro encoding:

df.to_csv('file.csv', encoding='utf-8-sig')

Esportare solo alcune colonne

E se volessimo esportare solo alcune colonne? In questo caso, abbiamo due opzioni:

  1. Possiamo creare una copia del nostro dataframe che contenga solo le colonne che vogliamo. Esporteremo poi questo nuovo dataframe in formato .csv come visto qui sopra.

  2. Possiamo specificare le colonne da includere nel file .csv direttamente all’interno del comando to.csv():

df.to_csv('file.csv', columns=['nome', 'città'])

In questo modo, il file finale avrà solo le colonne “nome” e “città” (oltre a quella che funge da indice che non abbiamo rimosso in questo esempio).

Conclusione

Ecco qui tre osservazioni al volo su questo argomento:

  • L'esportazione in .csv è un ottimo modo per condividere i tuoi dati in un formato universale.

  • Ricordati sempre di controllare il file .csv dopo l'esportazione per assicurarti che tutto sia come desideri.

  • Il formato .csv è più leggero rispetto a Excel, quindi è preferibile per grandi quantità di dati.

Alla prossima micro-lezione 👋