Python(Pandas)にてcsvが文字化けする時の対策【read_csvやto_csv:Shift jisかcp932】 | ウルトラフリーダム

Python(Pandas)にてcsvが文字化けする時の対策【read_csvやto_csv:Shift jisかcp932】

Python3
本サイトでは記事内に広告が含まれています。

Jupyter notebook(Python3)を使ってみようと思っても慣れていないうちは、どうしても処理に躓いてしまうものです。

例えば、Pythonのpandas機能にてread_csvやto_csvにて読み込み・出力時に文字化けする場合の対応策は理解していますか。

ここではこのpandasにてcsvが文字化けするにはencodingをShift jisかcp932にすると解決できるということについて解説していきます。

 

スポンサーリンク

Python(Pandas)のread_csvが文字化けする時はShift jisかcp932を使用する【encoding】

それでは以下のサンプルデータを用いてPython(Pandas)のread_csvが文字化けする時の解決策を確認していきます。

Csvを読み込み時に以下のように文字化けするケースがよくあります。

これを解決するには、read_csvにて読み込み時のencodingの部分をencoding=”shift jis”を指定すればいいです。

サンプルコードは以下のようになります。

import pandas as pd
import os
os.chdir(“C://sample”)
df = pd.read_csv(“sample.csv”,encoding=”shift jis”)
df

これだけで上のようにpythonでのcsv読み込み時の文字化けを解消できました。

コードの各々の意味は以下の通りです。

 

import pandas as pd

→panndasライブラりのインポート

 

import os

os.chdir(“C://sample”)

意義osライブラリのインポート、csvが置いてあるディレクトリ内へ移動

 

df = pd.read_csv(“sample.csv”,encoding=”shift jis”)

df

→csvが文字化けしないようshift jis”で読み込み、python上で表示

 

cp932のencodingでもcsvの文字化けを解消できる

上ではcsv読み込み時のencodingとして”shift jis”にしていましたが、cp932等でもOKです。

df = pd.read_csv(“sample.csv”,encoding=”cp932″)

このcp932を用いると日本語が含まれている際の文字化けはほぼ解決できると覚えておきましょう。

 

Python(Pandas)のto_csvが文字化けする時はShift jisかcp932を使用する【encoding】

続いて、以下のサンプルデータを用いてPython(Pandas)のto_csvにてcsvが文字化けする時の解決策を確認していきます。

以下のように一般的なencodingのutf-8にてcsv出力させると文字化けしてしまいます。

df.to_csv(r”C://sample/oksample.csv”, index=None,encoding=”utf-8″)

 

これを解決するためには、上と同様にencoding=”shift jis”を記載しておくといいです。

df.to_csv(r”C://sample/oksample.csv”, index=None,encoding=”shift jis”)

これによってto_csv時の文字化けを解消することができました。

 

to_csvでもcp932で文字化けを修正できる

 上とと同様にencoding=”cp932″でも文字化けが解消される場合が多いです。

df.to_csv(r”C://sample/oksample.csv”, index=None,encoding=”cp932″)

こちらも併せて覚えておきましょう。

他のutf8やutf16などでは文字化けしたり、1セルにすべてのデータが記載されたりするので気を付けるといいです。

 

まとめ Python(Pandas)にてread_csvやto_csvで文字化けする際の対処方法【Shift jisかcp932】

ここでは、jupyternotebook(python)のpandasでのread_csvやto_csv実行時に文字化けする際の対処方法について解説しました。

基本的に読み込み時でも出力時でも

・encoding=”shift jis”

・encoding=”cp932”

を使うといいです。

Pandas(Python)での各種処理方法に慣れ、より効率的なデータ解析を行っていきましょう。

コメント

タイトルとURLをコピーしました