前提
商品の購入データを扱っています。
返品に関する分析を行っています。
実現したいこと
商品の購入データから顧客ごとの総購入回数と総返品回数を算出。
↓
総返品回数÷総購入回数=返品率を顧客ごとに算出 (←ここまでは完了)
↓
返品率が高い顧客のみを抽出し、彼らの購入でーたや返品データを今後分析していきたい。
発生している問題・エラーメッセージ
返品処理も含めた全取引データセット(以下に例を作成)を用いると、取引単位で記録されているため、同じ顧客番号の取引がいくつも存在する。
そこで、顧客ごとの返品率を出すために顧客番号と返品回数総取引数の列を抽出し、被りを削除することで、顧客ごとの新たなデータセットを作成した。(新たなデータセット)
その後、この新しいデータセットを用いて返品率を求め、返品率50%以上の人を対象にしていこうと思いました。
前提が長くなってしまって、わかりづらい説明でごめんなさい。。
本題の今発生している問題なのですが、新たなデータセットを用いて対象の顧客を絞ることができたのはいいものの、その顧客データと合致する取引をもとの全取引のデータから抽出したいのです。
全取引データセット (df5)
顧客番号 商品名 ・・・ 返品回数 総取引数
143 ○○○ 3 24
265 ○○○ 1 13
375 ○○○ 14 102
265 ○○○ 1 13
・
・・・
・
189 ○○○ 5 58
721 ○○○ 5 49
375 ○○○ 14 102
932 ○○○ 9 154
新たなデータセット (df6)
顧客番号 返品回数 総取引数
143 3 24
265 1 13
375 14 102
・
・・・
・
189 5 58
721 5 49
932 9 154
SyntaxError: invalid syntax
該当のソースコード
#元のデータセットから顧客番号、返品回数、総取引数のみ抽出 df6=df5[['mbr_no','Return_num','sales_num']] #被っている列を削除←顧客番号の被りがなくなる df6.drop_duplicates() #返品率を計算 df7=df6.assign(return_ratio = df6["Return_num"]/df6["sales_num"]) #返品率50%以上のデータを抽出 df8=df7[df7['return_ratio']>=0.500] #上の顧客番号と一致する顧客番号のデータをもとのデータセットdf5から抽出する(エラー発生) df5[df5['mbr_no']==df8['mbr_no']]
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答2件
あなたの回答
tips
プレビュー