pandasで処理したデータをcsv出力する際にwindowsでcsvを開いた際に文字化けしないようにエンコード方式をcp932に指定すると、テキストに絵文字や特殊文字が入っていたり内容次第ではUnicodeErrorが起きてうまく出力できない場合があります。今日はその場合の対処法についてメモしておきます
エラーメッセージ
UnicodeEncodeError: ‘cp932’ codec can’t encode character ‘\xa0’ in position 16: illegal multibyte sequence
対処法
解決法としてはwith文とopen関数で開いたCSVに対して、to_csv()で出力すると良いです。引数についての簡単な補足ですが、まずerrors=”ignore”とすることで特殊文字のエラーを無視し、 newline=””とすることで出力したcsvに1行ごとに空行が入ることを防ぎます
with open("test.csv", mode="w", encoding="cp932", errors="ignore", newline="") as f: # pandasでファイルオブジェクトに書き込む df.to_csv(f, index=False)
関連記事:ファイル書き出し時に「cp932 codec can’t encode character」エラーが出る際の解決法
コメント
[…] 関連記事:【pandas】csv出力時にcp932を指定するとUnicodeErrorが起こる場合の対処法 […]