Więcej
Zapisywanie pandas DataFrame do pliku CSV
Mam ramkę danych w pandas, którą chciałbym zapisać do pliku CSV. Robię to za pomocą:
df.to_csv('out.csv')
I dostaję błąd:
UnicodeEncodeError: 'ascii' codec can't encode character u'\u03b1' in position 20: ordinal not in range(128)
Czy jest jakiś sposób, aby obejść to w prosty sposób (tj. Mam znaki unicode w mojej ramce danych)? I czy istnieje sposób, aby zapisać do pliku z tabulacją zamiast do CSV, używając np. metody 'to-tab' (która chyba nie istnieje)?
604
3
Aby oddzielić tabulatorami możesz użyć argumentu
sep
zto_csv
:Aby użyć określonego kodowania (np. 'utf-8') użyj argumentu
encoding
:Coś innego można spróbować, jeśli masz problemy z kodowaniem do 'utf-8' i chcesz iść komórka po komórce można spróbować następujące.
Python 2
(Gdzie "df" jest twoim obiektem DataFrame).
Następnie spróbuj:
Możesz sprawdzić kodowanie kolumn przez:
Ostrzeżenie: errors='ignore' spowoduje tylko pominięcie znaku np.
Python 3
Czasami napotykasz te problemy, jeśli określisz kodowanie UTF-8 również. Zalecam określenie kodowania podczas odczytu pliku i tego samego kodowania podczas zapisu do pliku. To może rozwiązać twój problem.