PythonプログラミングでCSVファイルを開くときの文字コードエラーへの対処方法 UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0x89 in position 0: invalid start byte

【問題】PythonのJupyther Notebookでスクリプトを使ってエクセルファイルやCSVファイルを読もうとしたら、UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0x89 in position 0: invalid start byteというエラーが出ました。

【解決】エクセルファイルとCSVファイルでは文字コードが異なっていたようです。

if file.endswith(‘.xls’) | file.endswith(‘.xlsx’):
data = pd.read_excel(file, encoding = “shift-jis”)
elif file.endswith(‘.csv’) :
data = pd.read_csv(file, encoding = “cp932”)

とファイルの拡張子によって指定する文字コードも変えてやったら、問題なく読んでくれました。