文字コードの違いなんてよく理解していないし、ほとんど気にもしてないのが初心者の本音(それは私です)
WindowsPCのExcelから出力したcsvファイルを、jupyter notebookなどを利用してpandasで読み込もうとすると'utf-8がなんちゃらで読めないよ'的なエラーが発生しました。
import pandas as pd
df = pd.read_csv('nantoka.csv')
'nantoka.csv'はExcelから入力してcsv形式で出力したファイルという想定です。
上記だとエラーになりpandasがcsvファイルを正しく読み込まれず、以下のようなエラーメッセージが表示されました。
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x95 in position 0: invalid start byte
原因はPythonでは'utf-8'という文字コードを扱うことが標準ですが、WindowsPCで動くOffice製品でつくらたファイルは文字コードが'932'だからという違いです。
そういう場合は以下のようなおまじないを付ければエラーになりません。
import pandas as pd
df = pd.read_csv('nantoka.csv',encoding='932')
###おまじないは encoding='932'
encordingではなくencodingです。(日本人的発音であるエンコードに引っ張られて'r'を付いた'encording'と思い込んでましたが、あくまでエンコディング(encoding)です。私はこのつづり間違いに気づかずしばらく悩みました)
文字コード指定を'encoding="SHIFT-JIS"'としてもうまく動いたりすることもありますが、経験則としてうまく動かない場合もありましたので、'932'と指定した方が確実だと思います。
ひさしぶりにpandasでcsvを扱おうとしたらエラーになったので、忘れないうちに書いときます。
同じ悩みを抱えている方の助けになればよいなーと。
###参考までに
使っているWindows環境の文字コードは何かの理由であえて別のものを指定していないならば、コマンドプロンプトから確認すると'932'と表示されます。
確認するためのコマンドは'chcp'
c:\>chcp
現在のコード ページ: 932
現場からは以上です。