Python

【Pandas】CSVファイル読み込み時にUnicodeDecodeError: ‘utf-8’ …が起きた時の対処方法

はじめに

こんにちは、ラスクです。
本記事では、pandasを利用したCSVファイルの読み込み時に起きやすいエラー(UnicodeDecodeError)についての対象方法をご紹介していきます。

pandas初心者の方はよく躓くポイントだと思うので、参考にしていただけたらと思います。では、本編に入っていきましょう。

発生したエラー
(UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0x8f in position 0: invalid start byte)

実行プログラム

import pandas as pd
import numpy as np

CSV_DATA = './sample.csv'

#CSVファイルからDataFrameへ変換
df = pd.read_csv(CSV_DATA)

実行結果:エラー

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

CSVファイルの読み込み時にエンコードがうまくいかなかったようです。

原因

CSVファイルの文字コードとプログラムで読み取ろうとした文字コード(utf-8)が異なるため、読み込みエラーを起こしたよ。ということです。

解決方法

解決方法は、簡単です!
CSVファイルの文字コードにあった文字コードを指定して読み込むようにすればよいのです。

# UTF-8の場合
df = pd.read_csv(CSV_DATA, encoding="UTF-8")

# Shift-JISの場合
df = pd.read_csv(CSV_DATA, encoding="Shift-JIS")

pd.read_csv(ファイル, encoding=”文字コード”)

基本的には、UTF-8かShift-JISですが、たまに違う文字コードの場合もあるのでCSVファイルがどの文字コードで保存されているか確認してしまうのが手っ取り早いです!

まとめ:文字コードを指定してCSVファイルを読み取ろう

UnicodeDecodeErrorが起きた時の対処方法は、開きたいファイルの文字コードに合わせてファイルを読み取るようにすればエラーを解消できることがわかったかと思います。pandas初心者の方に参考になっていれば嬉しいです。

ABOUT ME
lusk
EC歴3年、23歳。 通販カート会社に2018年新卒で入社し、エンジニア、プロジェクトマネージャー、新規事業の立ち上げを経験。 仕事を楽しくするためのツール作成や業務改善の仕組みを作ったりしてます。