スポンサーリンク
はじめに
こんにちは、ラスクです。
本記事では、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
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初心者の方に参考になっていれば嬉しいです。
スポンサーリンク