• analiticas
  • Posts
  • Come esportare i dati in Excel con pandas

Come esportare i dati in Excel con pandas

Salva ed esporta le tue analisi con facilità

Hai appena finito di analizzare i tuoi dati con pandas e ora vuoi condividerli con i tuoi colleghi che usano Excel? Niente paura! Esportare un dataframe in un file Excel è un gioco da ragazzi. Vediamo insieme come farlo.

Iniziamo

Per prima cosa, avrai bisogno di importare pandas (anche se probabilmente lo avrai già fatto per analizzare i tuoi dati):

import pandas as pd

Esportare il dataframe in formato Excel

Immaginiamo che i dati della nostra analisi siano contenuti nel dataframe chiamato df. Per esportare df in formato Excel dobbiamo usare il metodo to_excel(). Ecco come fare:

df.to_excel('file.xlsx')

Ecco fatto! Con questa riga di codice abbiamo creato un file Excel chiamato 'file.xlsx'.

Esportare l’indice

Ogni dataframe ha una colonna che funge da indice. A meno che non si personalizzi questo parametro, la colonna indice viene aggiunta automaticamente al nostro dataframe e riporta il numero delle righe.

Se eseguiamo il codice appena visto, esporteremo anche la colonna indice. Se invece vogliamo eliminarla (per migliorare la leggibilità del file), possiamo usare il parametro index del metodo to_excel(). Ecco come fare:

df.to_excel('file.xlsx', index=False)

Scegliere il nome del file

Puoi scegliere qualsiasi nome per il tuo file, ma ricordati di aggiungere l'estensione “.xlsx”.

Aggiungere il percorso al file Excel

Se ci limitiamo ad eseguire il codice appena visto, il file Excel con i valori del nostro dataframe verrà salvato nello stesso posto in cui si trova il file con il codice Python che stai eseguendo.

Se invece vuoi specificare una destinazione diversa in cui salvare il file Excel, ti basterà aggiungere il percorso quando determini il nome del file:

df.to_excel('/path/codice/file.xlsx', index=False)

Se invece vuoi esportare diversi file Excel nella stessa cartella, sarebbe più elegante non ripetere ogni volta il percorso. Per farlo di occorre creare una variabile:

# creiamo una variabile:

dest = '/Users/path/codice/analiticas/'


# esportiamo tre dataframe diversi nella stessa cartella

df1.to_excel(dest+'file1.xlsx')
df2.to_excel(dest+'file2.xlsx')
df3.to_excel(dest+'file3.xlsx')

Attenzione!

Se due o più file hanno lo stesso nome e lo stesso percorso, l’ultimo ad essere esportato sovrascriverà i precedenti.

Opzioni avanzate

Vediamo adesso due opzioni avanzate che possiamo usare quando esportiamo i nostri dati in un file Excel.

Creare un file Excel con più fogli

Se hai diversi dataframe da esportare, anziché farlo separatamente in più file Excel, puoi creare un unico file con più fogli.

In questo esempio immaginiamo di avere due dataframe: df_città e df_nazioni. Ecco come far sì finiscano ognuno in nel proprio foglio del file Excel:

with pd.ExcelWriter('file.xlsx') as writer:
    df_città.to_excel(writer, sheet_name='città', index=False)
    df_nazioni.to_excel(writer, sheet_name='nazioni', index=False)

Formattare le celle

Se vuoi aggiungere un po' di stile al tuo file Excel, puoi usare la libreria XlsxWriter.

Attenzione!

Per usare XlsxWriter, dovrai installarlo con pip/pip3 o tramite l’editor di Anaconda (se usi Anaconda o Miniconda).

Immaginiamo di avere un dataframe (df) in cui una colonna contiene dei valori numerici relativi a degli stipendi.

Quando esportiamo i dati in un file Excel, vogliamo applicare a questa colonna il formato di valuta (in Euro) e vogliamo separare sia i numeri decimali che le migliaia. Ecco come fare:

# Creiamo un ExcelWriter object con il motore XlsxWriter

writer = pd.ExcelWriter('file.xlsx', engine='xlsxwriter')


# Esportiamo il dataframe nel file Excel

df.to_excel(writer, sheet_name='Stipendi', index=False)


# Apriamo il foglio del file Excel

worksheet = writer.sheets['Stipendi']


# Aggiungiamo un formato per la valuta

formato_euro = writer.book.add_format({'num_format': '€#,##0.00'})


# Aggiungiamo una variabile per la larghezza della cella

l = 12


# Applichiamo larghezza e formato alla colonna degli stipendi

worksheet.set_column('B:B', l, formato_euro)


# Salviamo il file

writer.close()

Conclusione

  • L'esportazione in Excel è un ottimo modo per condividere i tuoi dati e le tue analisi con chi non usa Python.

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

  • Se stai lavorando con grandi quantità di dati, l'esportazione in Excel potrebbe richiedere del tempo. In questi casi, sarebbe meglio esportare in formato CSV, che è più leggero.

Alla prossima micro-lezione 👋