400個のExcelファイルを削除し、pythonを使用してpandasに読み込み、すべての生データを1つの大きなdfに追加しました。
それからcsvにエクスポートしようとすると:
df.to_csv("path",header=True,index=False)
私はこのエラーを受け取ります:
UnicodeEncodeError: 'ascii' codec can't encode character u'\xc7' in position 20: ordinal not in range(128)
誰かがこれを修正する方法とその意味を提案できますか?
ありがとう
DataFrameにunicode
値があります。ファイルにはバイトが格納されます。つまり、すべてのunicode
は、ファイルに格納する前にバイトにエンコードする必要があります。 utf-8
などのエンコーディングを指定する必要があります。例えば、
df.to_csv('path', header=True, index=False, encoding='utf-8')
エンコーディングを指定しない場合、df.to_csv
で使用されるエンコーディングは、Python2ではascii
に、Python3ではutf-8
にデフォルト設定されます。
後でそれをグーグルで検索するのに役立つ答えを追加する:
私を助けた1つのトリックは、最初に問題のあるシリーズをエンコードし、次にそれをutf-8にデコードして戻すことです。のような:
df['crumbs'] = df['crumbs'].map(lambda x: x.encode('unicode-escape').decode('utf-8'))
これにより、データフレームも正しく印刷されます。