thinkstats2 1章

英語は無償で読めるのだけど、そこに時間を使うのもアレなので本を購入。 ただ、githubにある演習問題は英語だったので、結局読むことに。まぁ本文読むよりは良いけれど。

演習の2つ目の穴埋めで早速ハマる。coodbook のページは度数分布表になっているので、1つ目のような単なる一覧ではまずいのか? ということでpython, pandas の使いかたを調べる。

※答えのほう(chap01soln.ipynb)はそのまま出力すれば良いだけだったので間違いじゃなかったぽい。

import pandas as pd

prgl = df.prglngth.value_counts().sort_index().to_frame("val_cnt")
prgl["prglngth_g"]=pd.cut(prgl.index,3)
print(prgl[['prglngth_g','val_cnt']].groupby('prglngth_g').sum())
                  val_cnt
prglngth_g               
(-0.05, 16.667]      3634
(16.667, 33.333]     1149
(33.333, 50]         8810
# 直接ビンの指定もできる。
prgl["prglngth_g"]=pd.cut(prgl.index,(0,13,26,50))
print(prgl[['prglngth_g','val_cnt']].groupby('prglngth_g').sum())
            val_cnt
prglngth_g         
(0, 13]        3507
(13, 26]        793
(26, 50]       9278

Rでも全く同じ関数でcutがあった。Rのdata.frameは割りとイメージできるので、R cut in python とかで調べると良いのかも。

参考: http://pandas.pydata.org/pandas-docs/version/0.17.1/generated/pandas.cut.html