Python:ゼロからはじめるPython:#3 JupyterでCSVファイルを視覚化してみよう


CSVの準備

参考とするサイトにCSVファイルのリンクがあるので、そこから入手しJupyter Notebookを起動するフォルダにコピーする。
→ Windows - C:\work\python\lesson にコピーした
→ Mac - /Users/user/python/lesson にコピーした

Jupyter Notebook実行

ターミナルでCSVをコピーしたフォルダに移動し "jupyter notebook" を起動
[New] - [Python3] で新規ノートブックを開く

In[]のセルにコマンド入力
import pandas as pd
pd.read_csv("population.csv", encoding="SHIFT_JIS")
※ pandasはデータ解析を支援するライブラリとのこと、前回の勉強時にインストールした

→ たったこれだけでCSVの内容が表示されるのはすごい。

■ソート
pd.read_csvの戻り値を変数にセット(ここではdfという変数)
dfにメソッドsort_valuesでソートできるらしい
import pandas as pd
df = pd.read_csv("population.csv", encoding="SHIFT_JIS")
df.sort_values(by=["平成28年"], ascending=True)
先ほど入力したセルを修正し実行 → 平成28年の少ない順でソートされる。

■棒グラフで表示
%matplotlib inline
import pandas as pd
df = pd.read_csv("population.csv", encoding="SHIFT_JIS")
df.plot.bar(y=['平成28年'])
※ jupyterにグラフ描画するには1行目の "%matplotlib inline" が必要

平成12年と平成28年を並べて棒グラフにするにはplot.barの部分を変更
df.plot_bar(y=["平成28年","平成12年"])

日本語文字化け対応

日本語フォントが入っていないので文字化けが発生する
http://ipafont.ipa.go.jp/old/ipaexfont/download.html
より IPAexフォントをダウンロード

ダウンロードした IPAexfont00201.zip を解凍

■コピー先
jupyterで以下コマンドを入力しパスを調べる
import matplotlib as mpl
mpl.__path__
上記フォルダの "mpl-data/fonts/ttf" に解凍した拡張子 ttf のファイルをコピー

■設定ファイル作成
jupyterで以下コマンドを入力しパスを調べる
import matplotlib as mpl
print(mpl.get_configdir())
上記フォルダに "matplotlibrc" というテキストファイルを作成(utf-8が良いのかな?)
内容は以下の通り
font.family : IPAexGothic
→ Windows - C:\users\user\.matplotlib\matplotlibrc

念のため jupyterは[Kernel] - [Restart] で再起動

もう一度グラフを実行してみる。

→ 文字化け治らず

以下の警告が出ている
C:\Users\user\Miniconda3\envs\introtensorflow\lib\site-packages\matplotlib\font_manager.py:1241: UserWarning: findfont: Font family ['IPAexGothic'] not found. Falling back to DejaVu Sans.
  (prop.get_family(), self.defaultFamily[fontext]))

警告が出る、ということは matplotlibrc は読めてるんだろうな。

と思ったら、サイトにエラーが出た場合の手順が書いてあった。
フォントが見つからないというエラーが出た場合は、作成された.matplotlibフォルダを削除し、Jupyterでメニューから[kernel > restart]で再起動させます。

(1)以下のフォルダを削除
C:¥Users¥¥.matplotlib
(2)再度、設定ファイルの書き込みプログラムを実行
(3)Jupyterでメニューから[kernel > restart]

→ Windows - うまくいきました。
→ Mac - Macも同じ現象・同じ対応でOK


[Python][JupyterNotebook]
https://news.mynavi.jp/article/zeropython-3/

0 件のコメント:

その他の記事