Skrivning af et pandas DataFrame til CSV-fil
Jeg har et dataframe i pandas, som jeg gerne vil skrive til en CSV-fil. Jeg gør dette ved hjælp af:
df.to_csv('out.csv')
Og får fejlen:
UnicodeEncodeError: 'ascii' codec can't encode character u'\u03b1' in position 20: ordinal not in range(128)
Er der nogen måde at komme udenom dette nemt (dvs. jeg har unicode-tegn i min dataramme)? Og er der en måde at skrive til en tab-delimiteret fil i stedet for en CSV ved hjælp af f.eks. en 'to-tab' metode (som jeg ikke tror findes)?
604
3
For at afgrænse med en tabulator kan du bruge
sep
-argumentet ito_csv
:Hvis du vil bruge en specifik kodning (f.eks. 'utf-8'), skal du bruge argumentet
encoding
:Noget andet du kan prøve, hvis du har problemer med at kode til 'utf-8' og ønsker at gå celle for celle, kan du prøve følgende.
Python 2
(Hvor "df" er dit DataFrame-objekt.)
Prøv derefter:
Du kan kontrollere kodningen af kolonnerne ved at:
Advarsel: errors='ignore' vil bare udelade tegnet, f.eks.
Python 3
Nogle gange opstår disse problemer, hvis du også angiver UTF-8-kodning. Jeg anbefaler, at du angiver kodning, mens du læser filen, og samme kodning, mens du skriver til filen. Dette kan løse dit problem.