2018-12-24

PandasでUnicodeDecodeError: 'shift_jis' codec can't decode byte 0xff in position 0: illegal multibyte sequenceが起こった時の対処法

状況


- 読み込もうとしているCSVファイルが、unicode形式になっている
- 文字コードの確認方法はこちら。

CSVファイルが文字化けしてExcelで見れない時の対処法について|Excel実務のノウハウのお勉強


- pandasのread_csvメソッドで。以下のようにCSVを読み込もうとする

stop_words = pd.read_csv(stop_words_filename, encoding="shift-jis")

問題


- 以下のエラーが発生した

UnicodeDecodeError: 'shift_jis' codec can't decode byte 0xff in position 0: illegal multibyte sequence

原因


- Pandasは、基本的にurf-8で文字コードを読み込もうとしている。utf-8以外の場合、encoding指定をしてあげる必要がある。
- 上のコードでは、shift-jisで読み込もうとしている
- しかし、元のファイルがunicodeなので読み込めていない。

対策


- 元のファイルをutf-8でencoding指定なし、もしくはshift-jis形式に変換をおこなう必要がある。
- どちらにせよ、ファイルの形式をunicodeから何等かの値に変更する必要がある

Excelの場合はこちらをutf-8形式に保存する
ExcelファイルをUTF-8のCSV形式で保存する方法(Excel 2016最新機能)40,710

libreofficeで修整する場合はこう。

https://help.libreoffice.org/Common/Export_text_files/ja




注目の投稿

めちゃくちゃ久しぶりにこのブログ書いたw 更新3年ぶりw > 多様性というゲームは尊厳と自由を勝ち取るゲームなのかもしれないな。  もともとツイッターでツイートした内容なんだけど、ちょっと深ぼる。 ----- 自分は男 x 30代x 二児の父 x 経営者 x 都心(共働き世...