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




注目の投稿

 PythonのTweepyを利用して、Twitter APIを利用している。 その中で、ハマったポイントをメモしておく。 まず、Searchに関して。 Twitter検索は、クライアントアプリ側では、全期間の検索が可能になっている。 一方で、APIを利用する際は、過去1週間しか...