LoginSignup
285
211

More than 5 years have passed since last update.

pandasでread_csv時にUnicodeDecodeErrorが起きた時の対処 (pd.read_table())

Posted at

pandasでCSVファイルを読み込む場合はread_csvするだけなので非常に便利です。

import pandas as pd
pd.read_csv("file/to/path")

通常は上記で問題無いのですが、CSVの中にダメな文字があると以下のようなエラーを吐かれてしまいます。

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

「デコード出来ねーぞ」ってお怒りの模様。

Excel作成のCSVは文字コードが「shift-jis」なので、一応読み込みのencodingでを指定してみますが、

import pandas as import pd
pd.read_csv("file/to/path", encoding="shift-jis")

やっぱりエラー。ですよね。

UnicodeDecodeError: 'shift_jis' codec can't decode byte 0x87 in position 0: illegal multibyte sequence

解決策としては、codecs.openignoreを指定のうえエラーを無視して開いて、pd.read_tableすると読み込めるみたい。

with codecs.open("file/to/path", "r", "Shift-JIS", "ignore") as file:
    df = pd.read_table(file, delimiter=",")
    print(df)

file.read()とせずにそのままStreamReaderWriter objectのまま渡して良いみたいですね。

チョットハマって右往左往したのでメモまで。

285
211
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
285
211