先日の業務で、あるECサイトの売上データから「価格帯別」の各種データを集計したので、その時のPythonコードをまとめておく。

目的

今回は売上一覧データフレームから、価格帯別の「利益率」、「売上件数」を集計する。

サンプルデータフレーム

以下のようなデータフレームがあるとする。

data_uriage.head()

このデータを価格帯別に加工していく。

ビン分割

まずは、pandasのcut関数を使って分割処理を行う。

data_uriage['価格帯'] = pd.cut(data_uriage['売上'],
    [0, 50000, 100000, 200000, 300000, 500000, 750000, 1000000])

これでデータフレームに新たに「価格帯」という列が増えた。

次に、groupby関数を使ってデータを集約していく。

data_bins = data_uriage[['粗利率']].groupby(data_uriage['価格帯']).mean()
data_bins['件数'] = data_uriage[['売上']].groupby(data_uriage['価格帯']).count()

上記のコードを実行すると、次のとおり集約された結果が得られる。