Viac na
Zápis pandas DataFrame do súboru CSV
V programe pandas mám dátový rámec, ktorý by som chcel zapísať do súboru CSV. Robím to pomocou:
df.to_csv('out.csv')
A dostávam chybu:
UnicodeEncodeError: 'ascii' codec can't encode character u'\u03b1' in position 20: ordinal not in range(128)
Existuje nejaký spôsob, ako to jednoducho obísť (t. j. mám v dátovom rámci znaky unicode)? A existuje spôsob, ako zapisovať do súboru s tabuľkou namiesto CSV pomocou napr. metódy 'to-tab' (ktorá podľa mňa neexistuje)?
604
3
Na oddelenie tabulátorom môžete použiť argument
sep
príkazuto_csv
:Ak chcete použiť špecifické kódovanie (napr. 'utf-8'), použite argument
encoding
:Ak máte problémy s kódovaním do 'utf-8' a chcete postupovať po jednotlivých bunkách, môžete skúsiť nasledovné.
Python 2
(Kde "df" je váš objekt DataFrame.)
Potom skúste:
Kódovanie stĺpcov môžete skontrolovať pomocou:
Upozornenie: errors='ignore' len vynechá znak napr.
Python 3
Niekedy sa s týmito problémami stretávate, ak zadáte aj kódovanie UTF-8. Odporúčam vám, aby ste pri čítaní súboru zadali kódovanie a pri zápise do súboru rovnaké kódovanie. To by mohlo vyriešiť váš problém.