286
212

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

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のまま渡して良いみたいですね。

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

286
212
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
286
212

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?