あれもPython,これもPython

Pythonで世界を包みたい

Pythonで探索的データ分析したいのでpivottablejsを使う

Pythonのデータ分析は、pandasやnumpyのおかげで大変快適です。

しかしそうは言っても、コード書くほどじゃないんだよなあとか、
まだデータ全然わかんねえんだよなーという時があります。

そんなときに便利なモジュールがpivottablejsです。
というわけで、まずは動画を御覧ください。

pivottablejs

pivottable.jsはもともとjavascriptのパッケージです。
インタラクティブにデータを可視化したり、集計することが可能になります。
(人と相談したりしながらの操作も楽ですね!)

pythonではpivottablejsというモジュールを導入することで、
これが使用することが可能になります。

使い方

pip install pivottablejs

で、導入。

IPython notebook上で、

import pandas as pd
from pivottablejs import pivot_ui

df = pd.read_csv(読み込むデータ)
pivot_ui(df)

あとはぐりぐり動かすだけです。

出来ること

データの選択

まず、ドラッグアンドドロップで縦軸、横軸に使用するデータが選べます。
同じ軸に複数のデータを置くと、階層化が可能です。

また、データをクリックすることで、簡易的にフィルターをかけることも可能です。

データの表示方法

左上のボタンを押すと、データの表示方法を選択することが可能です。
集計テーブルや、ヒートマップ、折れ線グラフ、散布図など基本的な表示方法を選ぶことが出来ます。

選べる表示方法

  • TABLE
  • TABLE BAR chart
  • heatmap
  • row heatmap
  • col heatmap
  • linechart
  • barchart
  • stack barchart
  • area chart
  • scatter chart
  • treemap

データの種類

表の左上のボタンを押すと、データの種類を選ぶことができます。
単純なデータの個数や、平均値、最大値などを選択可能です。

この時、平均値や最大値などを選択すると、
その下にさらにデータを選択するボタンが現れます。
これで、どのデータの平均値を使用するか決められます。

選べるデータの種類

  • count
  • count unique values
  • list unique values
  • sum
  • integer sum
  • average
  • minimun
  • maximum
  • sum over sum
  • 80% upper bound
  • 80% Lower Bound
  • Sum as Fraction of total
  • Sum as Fractions of Rows
  • Sum as Fractions of Cols
  • counts as fractions of total
  • counts as fractions of rows
  • counts as fractions of columns

まとめ

これだと、コードをあまり書かずに、
データを見ることができて便利です。

ただし、加工のプロセスに再現性を持たせられないので、
そこは記録をとって、
後でコードにしたほうが良いですね。