search
LoginSignup
79

More than 5 years have passed since last update.

posted at

updated at

【Python】pandasで日本語のcsvを文字化けせずに読み込む(さらに日本語で書かれた列を抽出する)

Python2.7.6をpycharmでデータ分析をしようと思い立ち絶賛勉強中です。

今回は、解析対象の日本語で書かれたcsvファイルを読み込んだところ
見事に文字化けしたファイルが出力されました。
いろいろ調べた結果、以下の方法で解決しました。

なぜcsvファイルが文字化けしたのか

文字化けしたファイルは前に作成したエントリーと同様の方法で
行いました。

import pandas as pd
import os

# データが格納されている作業ディレクトリまでパス指定
os.chdir("/ディレクトリまでのファイルパス")
# csvの読み取り
df= pd.read_csv("japanese.csv")
print df

しかし、csvの読み取りの際に、文字コードを指定していなかったため、
無事文字化けしたファイルが読み取られました。

文字化けしない日本語csvファイルの読み取り方法

そこで、次のような方法でcsvファイルをSHIFT-JISで読み取ったところ、
見事、日本語でcsvファイルが表示されました!

import pandas as pd
import os

# データが格納されている作業ディレクトリまでパス指定
os.chdir("/ディレクトリまでのファイルパス")
# 文字コードを指定したcsvの読み取り
df= pd.read_csv("japanese.csv",encoding="SHIFT-JIS")
print df

さて、このように日本語csvファイルが読み込めたので、いよいよデータを加工するぞ!
となったのですが、文字コードをいろいろ弄っているうちに、日本語で指定した列を
取得することができず、またもや苦戦しました...

日本語で書かれた列のみを抽出する

欲しい列のみを取ってくるには、明示的にcolumnを指定する
loc[:,"欲しい列名"]
を記載すれば、”欲しい列名”以下の列をすべて取得してくれるそうです。
こちらに詳しい解説が載っています。
結果、次のように記載するば、
"欲しい列の名前"が書かれている列を
ごそっと取得することができました!

import pandas as pd
import os

# データが格納されている作業ディレクトリまでパス指定
os.chdir("/ディレクトリまでのファイルパス")
# 文字コードを指定したcsvの読み取り
df= pd.read_csv("japanese.csv,encoding="SHIFT-JIS"")
column = df.loc[:,[u'欲しい列の名前']]
print column 

今回も基本的なところで躓いてしまっているのですが、
もし、同じ悩みを抱えている人がいたら参考になればと....

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
What you can do with signing up
79