ここでは、pandas.to_csv
で明示的にencoding
パラメータを使用していないときに、未知の(?)エンコードを使用するパンダの具体的な例を示します。
0x92は、明示的にパンダのドキュメントは、それがデフォルトでこれを使用していると言っていてもto_csv
とencoding="utf-8"
を使用する必要がありますようだから、それが見えます(アポストロフィのように見える)「
import pandas
ERRORFILE = r'written_without_encoding_parameter.csv'
NO_ERRORFILE = r'written_WITH_encoding_parameter.csv'
df_dummy = pandas.DataFrame([u"Yo what's up", u"I like your sister’s friend"])
df_dummy.to_csv(ERRORFILE)
df_dummy.to_csv(NO_ERRORFILE, encoding="utf-8")
df_no_error_with_latin = pandas.read_csv(ERRORFILE, encoding="Latin-1")
df_no_error = pandas.read_csv(NO_ERRORFILE)
df_error = pandas.read_csv(ERRORFILE)
>>> UnicodeDecodeError: 'utf-8' codec can't decode byte 0x92 in position 18: invalid start byte
です。またはencoding="Latin-1"
とread_csv
を使用してください。
さらにイライラ...
df_error_even_with_utf8 = pandas.read_csv(ERRORFILE, encoding="utf-8")
>>> UnicodeDecodeError: 'utf-8' codec can't decode byte 0x92 in position 18: invalid start byte
私は、Windows 7、Pythonの3.5、パンダ0.19.2時点を使用しています。
この問題を再現するサンプルデータフレームを提供できますか? –
@ TadhgMcDonald-Jensenできませんが、同じソースから他のデータセットを使用して作成したデータフレームに問題は一貫しています。 – user113531