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")

コメント