R逆引きハンドブックのMatrixの章をPandasで。
作者の書いた本はオススメ
データフレームを作成する
>>> pd.DataFrame([[1,2,3],[4,5,6]]) 0 1 2 0 1 2 3 1 4 5 6
データフレームに列名と行名を追加
>>> x = pd.DataFrame([[1,2,3],[4,5,6]]) >>> pd.DataFrame([[1,2,3],[4,5,6]]) 0 1 2 0 1 2 3 1 4 5 6 >>> x = pd.DataFrame([[1,2,3],[4,5,6]]) >>> x 0 1 2 0 1 2 3 1 4 5 6 >>> x.index = list("ab") >>> x.columns = list("cde") >>> x c d e a 1 2 3 b 4 5 6
データフレームの列にアクセスする
>>> x = pd.DataFrame([[1,2,3],[4,5,6]], index=list("ab"), columns=list("cde")) >>> x c d e a 1 2 3 b 4 5 6 >>> x["c"] a 1 b 4 Name: c, dtype: int64 >>> x.c a 1 b 4 Name: c, dtype: int64
Seriesが返ってくるのでメソッドもよべる
>>> x.c.mean() 2.5 >>> x.c.sum() 5
データフレームに要素を追加する
>>> x = pd.DataFrame([[1,2,3],[4,5,6]], index=list("ab"), columns=list("cde")) >>> y = pd.Series([7,8,9], index=list("cde")) >>> x.append(y, ignore_index=True) c d e 0 1 2 3 1 4 5 6 2 7 8 9
データフレームを結合する
rbind
::: python >>> x 0 1 0 1 0 1 -2 3 >>> x.append(x) 0 1 0 1 0 1 -2 3 0 1 0 1 -2 3 >>> pd.concat([x, x], axis=0) 0 1 0 1 0 1 -2 3 0 1 0 1 -2 3
cbind
::: python >>> pd.concat([x, x], axis=1) 0 1 0 1 0 1 0 1 0 1 -2 3 -2 3
データフレームから一部を抽出する
ggplotの組込みデータを使う。 wt>3のname,disp列を抽出
>>> from ggplot import mtcars >>> mtcars[mtcars.wt > 3][["name","disp"]] name disp 3 Hornet 4 Drive 258.0 4 Hornet Sportabout 360.0 5 Valiant 225.0 6 Duster 360 360.0 7 Merc 240D 146.7 8 Merc 230 140.8 9 Merc 280 167.6 10 Merc 280C 167.6 11 Merc 450SE 275.8 12 Merc 450SL 275.8 13 Merc 450SLC 275.8 14 Cadillac Fleetwood 472.0 15 Lincoln Continental 460.0 16 Chrysler Imperial 440.0 21 Dodge Challenger 318.0 22 AMC Javelin 304.0 23 Camaro Z28 350.0 24 Pontiac Firebird 400.0 28 Ford Pantera L 351.0 30 Maserati Bora 301.0
データフレームの列を変換する
transform
>>> x = pd.DataFrame([(1,2),(3,4),(5,6),(7,8)]) >>> x 0 1 0 1 2 1 3 4 2 5 6 3 7 8 >>> x[2] = x[0]+2 >>> x 0 1 2 0 1 2 3 1 3 4 5 2 5 6 7 3 7 8 9
因子ごとに組み合わせを作成する
R expand.grid() function in Python
データフレームの列や行ごとの合計を求める
::: python >>> x 0 1 2 0 1 2 3 1 4 5 6 2 7 8 9 >>> x.sum(axis=0) 0 12 1 15 2 18 dtype: int64 >>> x.sum(axis=1) 0 6 1 15 2 24 dtype: int64
データフレームの列ごとに関数を適用する
>>> x = pd.DataFrame([(1,2),(3,4),(5,6),(7,8)]) >>> x.apply(sum) 0 16 1 20 dtype: int64
データフレームから欠損値を取り除く
>>> x = pd.DataFrame([(1,2),(3,np.nan),(np.nan,6),(7,8)]) >>> x 0 1 0 1 2 1 3 NaN 2 NaN 6 3 7 8 >>> x.dropna() 0 1 0 1 2 3 7 8
データフレームの列を分解、統合する
multiindex便利
>>> x = pd.DataFrame([(1,"Y"),(3,"N"),(6,"N"),(7,"Y")]) >>> x 0 1 0 1 Y 1 3 N 2 6 N 3 7 Y >>> y = x.groupby(1) >>> y.head() 0 1 1 N 1 3 N 2 6 N Y 0 1 Y 3 7 Y >>> y.mean() 0 1 N 4.5 Y 4.0
縦長形式のデータフレームを横長形式に変換する
>>> x = pd.DataFrame([(1,0,1),(1,1,2),(1,2,0),(2,0,1),(2,1,1),(2,2,3),(3,0,0),(3,1,1),(3,2,2)], columns=["subject","time","conc"]) >>> x subject time conc 0 1 0 1 1 1 1 2 2 1 2 0 3 2 0 1 4 2 1 1 5 2 2 3 6 3 0 0 7 3 1 1 8 3 2 2 >>> x.pivot(index="time", columns="subject") conc subject 1 2 3 time 0 1 1 0 1 2 1 1 2 0 3 2
データフレームを分割する
groupby
データフレームを並べ替える
>>> x = pd.DataFrame([(1,0,1),(1,1,2),(1,2,0),(2,0,1),(2,1,1),(2,2,3),(3,0,0),(3,1,1),(3,2,2)], columns=["subject","time","conc"]) >>> x subject time conc 0 1 0 1 1 1 1 2 2 1 2 0 3 2 0 1 4 2 1 1 5 2 2 3 6 3 0 0 7 3 1 1 8 3 2 2 >>> x.sort("time") subject time conc 0 1 0 1 3 2 0 1 6 3 0 0 1 1 1 2 4 2 1 1 7 3 1 1 2 1 2 0 5 2 2 3 8 3 2 2
R言語逆引きハンドブック
Pythonによるデータ分析入門 ―NumPy、pandasを使ったデータ処理
メディシナルケミストリー
落下する夕方 (角川文庫)
模倣犯1 (新潮文庫)
模倣犯2 (新潮文庫)
砂の女 (新潮文庫)
陰翳礼讃 (中公文庫)
新装版 限りなく透明に近いブルー (講談社文庫)
最後の恋―つまり、自分史上最高の恋。 (新潮文庫)
□ しかく
銀の匙 (岩波文庫)
郵便配達夫はいつも二度ベルを鳴らす (ハヤカワ・ミステリ文庫 77-1)
叶えられた祈り (新潮文庫)




国道沿いのファミレス
神様のボート (新潮文庫)
センセイの鞄 (文春文庫)
ダンス・ダンス・ダンス(上) (講談社文庫)
ダンス・ダンス・ダンス(下) (講談社文庫)
真昼なのに昏い部屋 (講談社文庫)
ヘヴンリー・ブルー (集英社文庫)
かたちだけの愛
白痴 (新潮文庫)
天国旅行 (新潮文庫)
カラフル (文春文庫)
蹴りたい背中
つめたいよるに (新潮文庫)
号泣する準備はできていた
決壊〈上〉 (新潮文庫)
決壊〈下〉 (新潮文庫)
夏の約束
わたくし率 イン 歯ー、または世界
ニッポニアニッポン