Pandas, Python

【Pandas】groupbyを用いてグループごとにデータ件数を集計する


データ分析を行う際、任意のグループごとにデータの件数を調べることがよくあります。

本記事では、Pythonのデータ分析用ライブラリであるPandasを用いて、前述の操作を行う方法について解説します。

使用するメソッドと実装例

グループごとのデータの件数を調べる処理に必要なメソッド、その使い方を紹介します。

使用するメソッド

使用するメソッドは、Pandasのgroupbyメソッド、sizeメソッドです。

対象のDataFrameに対して以下のようにメソッドを適用することにより、出力結果として指定の列における各値の出現数が得られます。

DataFrame.groupby('任意の列名').size()

実装例

前述のやり方に従って処理を実装してみます。

import pandas as pd

df = pd.DataFrame([['A', 'Male', 15], ['B', 'Female', 16], 
                   ['C', 'Male', 17], ['D', 'Female', 18]],
                   columns=['name', 'sex', 'age'], index=[101, 102, 103, 104])

print('元のDataFrame')
print(df)

print('\nsexのグループ別の要素数を取得')
print(df.groupby('sex').size())

このプログラムを実行すると以下の出力結果が得られます。

元のDataFrame
    name     sex  age
101    A    Male   15
102    B  Female   16
103    C    Male   17
104    D  Female   18

sexのグループ別の要素数を取得
sex
Female    2
Male      2
dtype: int64