先日の業務で、ある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()
上記のコードを実行すると、次のとおり集約された結果が得られる。