Pythonのpandasでcsvファイルを読み込んだ時に文字化けした事はありませんか?
今回このトラブルが発生した場合の解決する方法をご紹介します。
【python】pandasでcsvを読み込んで文字化した場合の解決方法
原因
文字化けの原因は、csvファイルの中に日本語が混じっていてことです。
もうすこし正確に言うと、日本語であってもUTFー8の文字コードで日本語が書かれているのであれば問題ないのですが、Windows環境の例えばexcel などでcsvを作成すると、文字コードがshift-jisになるので、pythonで読み込もうとすると、文字化けしてしまいます。
Pythonに限らず多くのプログラミング言語は、日本以外で誕生した言語なので、デフォルトで日本語を表示できるような設定になっていませんので、日本語のcsvですと、宣言してあげる必要があるんです。
ファイルの読み込みだけでなく、プログラムを書いていて遭遇する文字化けのほぼ100%が同じ問題なので、プログラムを書く際は、可能な限り日本語を使わない方が無難です。
解決方法
先程答えを書いてしまいましたが、この問題を解決する方法は、読み込む時に日本語(文字)のエンコードを指定してやれば、文字化けすることなく、日本が表示されるようになります。
尚、このとき、英数字が混在していても問題ありません。
コード
文字化けを解消する為のコードの書き方は次の通りです。
1 import pandas as pd 2 3 read_data = pd.read_csv("test.csv",encoding="shift_jis")
エンコードの指定は、3行目の「encoding=“shift_jis”」の部分です。
ネットのソースではこれが書かれていないものが多いですが、文字化けに遭遇したら迷わずこれを追加してみてください。
じつは、これでもダメな場合があるんです。
それはWindowsの特殊文字が書かれている場合なんです。
でも特殊文字が使われているかどうかなんてわからないですよね?
という事で、上の通り書いても文字化けが解消しない場合は、なにも考えずに、エンコードの設定の部分を以下の通り変更してみてください。
1 import pandas as pd 2 3 read_data = pd.read_csv("test.csv",encoding="cp932")
どうですか?
これで文字化け解消できたでしょ?