Pandasワークショップ

Code for Chibaの平川です。

12/10(日)千葉駅そごうに新しくできた「コトコトコワーキングスペース」にてPandasワークショップを開催しました。

Pandas・JupiterNotebook

Pandasとは行列データを集計、加工、分析などを行うためのPythonライブラリです。csv,excel,sqliteなど様々な形式のデータを読み書きすることができます。

JupiterNotebookとはPythonのコードをブラウザ上でインタプリタ的に実行したり、その結果やメモを残しながら分析をする為のPythonのツールです。

この2つを組み合わせると分析途中のデータを確認しながらデータ加工を進められます。

ワークショップの流れ

  • Pandasの紹介
  • JupiterNotebook環境を配布
  • 千葉市のオープンデータを探してみる
  • Pandasでデータを読み込み可視化する

JupiterNotebookを使う

今回は環境構築の手間を軽減するためにAMIからマイクロインスタンスを作り配布しました。

データを探す

事前に探しておいたデータから使いたいデータを選びます。

次のようなデータを選んで、分析・可視化してみることにしました。

  • 人口予測(統計局)
  • 自動車免許(運輸局)
  • 丁目・年齢別の千葉市の人口データ(千葉市)

pandasでデータを読み込む

  • pandasでは#read_csv #read_excelなどの関数でデータセットを読み込みDataFrame(行列の2次元データ)として読み込むことができます。
import pends as pd
df = pd.read_csv('./data/気象庁のデータ.csv', encoding='Shift-jis',header=2)

とするとデータが読み込めます。

データを加工する

この記事が図があり詳しいです。

pandas の loc、iloc、ix の違い — pytho

http://ailaby.com/lox_iloc_ix/

Python pandas 図でみる データ連結 / 結合処理

http://sinhrks.hatenablog.com/entry/2015/01/28/073327

Pandasでデータを読み込み可視化する

DataFrameをそのまま表示する

df.head(12)

グラフとして表示する

matplotlibを使います。

%matplotlib inline
df.head(12)['平均気温'].plot()

今後の展開

一先ず、データを読み込んで範囲を指定して取得しplotすることができました。

今後はCfCもくもく会でもpandasを触っていく予定です。

学習に役立ちそうな情報

tmpnb

http://tmpnb.org

アクセスするとサーバーサイドでDockerコンテナが起動し、すぐにJupiterNotebookが使えるようになります。

ただし、JupiterNotebookとインターネット間は通信できないようになっており、pip install での新規のライブラリの導入はできないです。

それと、しばらく使わないと分析途中のデータが消えます。

とはいえ、pandasもセットアップしてある為お試しで使うのには十分です。

pandas公式ドキュメント

http://pandas.pydata.org/pandas-docs/stable/

Pandasには様々な関数があり機能が豊富にあります。

どういう処理ができるか、どのような引数を受けてどんなデータを返すのか公式ドキュメントから探す事ができます。