python pandasのCSV読み込みでdecodeエラー

データサイエンス

pandasの読み込みでdecodeエラー

CSVファイルを読み込んでいるのですが初っ端から、pythonでcsvファイルを読み込ませようとしてエラーとなりました。
原因はファイルの中身に日本語が含まれていたため、UTF-8では処理できなかったためです。

inputs = {    "details": f"{dataset_dir}/会計明細_20210401-20210428.csv",    "merchandise": f"{dataset_dir}/商品別売上_20210401-20210428.csv",    "sales_daily": f"{dataset_dir}/売上集計_20210401-20210428.csv",}

# データを読み込み
df_details = pd.read_csv(inputs["details"])
df_merchandise = pd.read_csv(inputs["merchandise"])
df_sales_daily = pd.read_csv(inputs["sales_daily"])
/usr/local/lib/python3.7/dist-packages/pandas/io/parsers.py in __init__(self, src, **kwds)
   2008         kwds["usecols"] = self.usecols
   2009 
-> 2010         self._reader = parsers.TextReader(src, **kwds)
   2011         self.unnamed_cols = self._reader.unnamed_cols
   2012 

pandas/_libs/parsers.pyx in pandas._libs.parsers.TextReader.__cinit__()
pandas/_libs/parsers.pyx in pandas._libs.parsers.TextReader._get_header()

UnicodeDecodeError: 'utf-8' codec can't decode byte 0x8e in position 0: invalid start byte

解決策としてはUtf-8ではなくshift-jisを読み込ませようとして解決しました。
日本語が含まれている場合は要注意ですね。

df_details = pd.read_csv(inputs["details"], encoding="shift-jis")

コメント

タイトルとURLをコピーしました