Scrivere un pandas DataFrame in un file CSV
Ho un dataframe in pandas che vorrei scrivere in un file CSV. Lo sto facendo usando:
df.to_csv('out.csv')
E ottengo l'errore:
UnicodeEncodeError: 'ascii' codec can't encode character u'\u03b1' in position 20: ordinal not in range(128)
C'è un modo per aggirare questo facilmente (cioè ho caratteri unicode nel mio frame di dati)? E c'è un modo per scrivere in un file delimitato da tabulazioni invece che in un CSV usando per esempio un metodo 'to-tab' (che non credo esista)?
604
3
Per delimitare con una tabulazione puoi usare l'argomento
sep
dito_csv
:Per usare una codifica specifica (per esempio 'utf-8') usa l'argomento
encoding
:Un'altra cosa che puoi provare se hai problemi con la codifica in 'utf-8' e vuoi andare cella per cella potresti provare quanto segue.
Python 2
(Dove "df" è il tuo oggetto DataFrame).
Allora provate:
Potete controllare la codifica delle colonne con:
Attenzione: errors='ignore' ometterà semplicemente il carattere, ad esempio
Python 3
A volte si incontrano questi problemi se si specifica anche la codifica UTF-8. Vi consiglio di specificare la codifica durante la lettura del file e la stessa codifica durante la scrittura del file. Questo potrebbe risolvere il vostro problema.