【前提】
#今回扱う顧客データ(仮) df = target_online_retail_data_tb #同じCustomerIDを持つデータに対して、購買価格の和を求める df1 = df[['CustomerID', 'TotalPrice']].groupby('CustomerID').sum().reset_index() #降順にする df2 = df1.sort_values('TotalPrice', ascending = False) #降順にしたデータを4等分する df3 = pd.qcut(df2['TotalPrice'], 4, duplicates = 'drop') #等分したそれぞれのデータに対して、購買金額の和を求める df4 = df2.groupby(df3)['TotalPrice'].sum()
顧客情報(仮)が入ったデータを読み込み、合計購買金額('TotalPrice')を降順に設定。
合計購買金額の降順に並んだ購買者をn等分するために、groupbyを利用しました。
今回はn=4で行った所、以下の結果を得ることが出来ました。
TotalPrice (-0.001, 307.245] 194130.090 (307.245, 674.45] 503836.852 (674.45, 1661.64] 1161895.311 (1661.64, 280206.02] 7051545.651 Name: TotalPrice, dtype: float64
【質問内容】
ここで質問させて頂きたいことがあります。
①等分したそれぞれのグループの購買金額の和(上のコードの最右列)が「データ全体の合計金額の何%を占めているか」が知りたいです。
→(その割合を上のコード結果の右側に追加したい)
そのためには、一度上のコードをDataFrame型に戻す作業が必要になるのでしょうか?
それともpandasの関数やらを使用して、そのまま求めることが出来ますか?
※DataFrame型をはじめとして、コードの型について未だ浅学です。質問自体がおかしい場合は、その旨を言って頂けると助かります。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/05/14 08:35