pandasでUnicodeDecodeError が出たときにやることまとめ
pandasでCSVファイルを読み込むときにUnicodeDecodeErrorが出た、そんなときは以下のどれかを試しておけばまぁ上手くいくはず......みたいな備忘録
import pandas as pd
普通
df = pd.read_csv(path, encoding="utf-8")
pd.read_csv
はデフォルトでencoding=None
ですが、中身の処理的にはencoding="utf-8"
と同じです。
選択肢1
df = pd.read_csv(path, encoding="utf-8-sig")
Excelで編集されたCSVファイルとかはよくこれを使うことになります。
選択肢2
df = pd.read_csv(path, encoding="shift-jis")
日本語のCSVファイルだとたまに使います。
選択肢3
df = pd.read_csv(path, encoding="cp932")
変な日本語?とかが含まれていると大体これを使うことになります。
選択肢4
import codecs with codecs.open(path, "r", "shift-jis", "ignore") as f: df = pd.read_csv(f)
これまでの手法でダメだったときはこれを使うことになりますが、あんまり使いません。