#はじめに
pythonでcsvファイルを読み込んだ際に下記のエラーが出てくる理由をまとめました。
import pandas as pd
pd.read_csv("file/to/path")
pandasでread_csvした際に下記のコードが出てきてしまった方の参考になればと思います。
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x90 in position 0: invalid start byte
#1. 解決策
先に結論だけ言うと下記のコードのようにしてください。
pd.read_csv("file/to/path", encoding="shift-jis")
encoding="shift-jis"
だけつけたら大体OKなはず!
それでもエラーが出てしまう人は2以降を読んで理由を検討してみてください。
#2. エラーが出てきてしまう理由
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x90 in position 0: invalid start byte
そもそもこのエラーは何を怒っているのかというとざっくりですが
'utf-8'っていう文字コードのままだとデータの読み込みができない的なことを言っています。
例えるなら英語読めないから日本語に直してからデータ読み込ませて!
みたいなことです。
なので別の文字コードに変換してあげましょう。
その文字コードを変換することをエンコーディングと呼びます。
#3. では、なんで"shift-jisなのかというと
それを説明する為に、代表的な文字コードの説明をざっとさせてください。
###UTF-8
世界的にも最もポピュラーな文字コードで、Unicode用の符号化方式の1つです。ASCIIで定義している文字を、Unicodeでそのまま使用することを目的として制定しています。
ここでは難しい事は置いといて、一番使われてるんだな的な認識で大丈夫です。
###JISコード
インターネット上で標準的な文字コードで、特に電子メールでの使用が一般的です。
###EUC
Extended Unix Codeを略したもので、日本語UNIXが使用しています。
###Shift_JIS
Microsoft社が開発したコードで、ASCIIコードの文字に日本語の文字を加えた物です。Windows、Macでも採用しており、PC上のファイルで広く用いられています。
つまり、日本語が入っているcsvファイルは、UTF-8では読めないからShift_JIS に変更しろってことですね
Shift_JISにエンコードしてデータを読み込めなかった人は、
ファイルが他の文字コードのどれに当てはまるのか考えて試してみてください。
以上メモ書きまでに
※初心者なので間違ってるところがありましたら教えてください!!