こけこっこー

がんばる

pandasでグルーピングとカウント

グルーピングはデータの集計に使えます。 例えばtitanicのtraining dataのDataFrameをtrain_dfとして以下のように書くと

train_df.groupby('Sex').max()

こんな結果が得られます。

f:id:monisoi:20171019071859p:plain

train_dfに対してSexでグルーピングしてそれぞれの特徴量の最大値を取得したということです。 最大値が取得できないような特徴量は表示されません。

ただ、全ての特徴量の最大値を取得しても特に意味はないので、 実際に使うときは、どの特徴量を見るのかも指定することでしょう。

train_df.groupby('Sex').max().Age

これで男女それぞれの年齢の最大値だけ取り出せます。

Sex
female    63.0
male      80.0
Name: Age, dtype: float64

また、複数の項目でグルーピングして、かつ、グルーピングに使った項目でカウントしたりもできます。

train_df.groupby(['Sex','Survived'])['Survived'].count()

出力

Sex     Survived
female  0            81
        1           233
male    0           468
        1           109
Name: Survived, dtype: int64

これで男女の生存数の内訳がわかりますね。