前提
Pythonを用いて、データ処理を行っています。
自分で方法を思い浮かばず、問題提起だけになっていることは承知の上で、助けていただきたいです。
実現したいこと
同じカラムを持った、2つの異なるデータセットを用いて複数条件に合致するものを抽出して、片方のデータセットに新しく列を追加したいです。
購入データ(df1i)
顧客番号 商品カテゴリ 日付 時刻
111 AAA 2021-2-13 10:20:45
112 BBB 2021-4-15 16:36:22
113 AAA 2021-8-09 13:12:56
111 CCC 2021-6-10 11:09:35
111 BBB 2021-5-08 09:20:23
113 AAA 2021-1-28 10:53:12
返品データ(df2i)
顧客番号 商品カテゴリ 日付 時刻
111 AAA 2021-02-13 09:43:12
112 CCC 2021-10-21 11:21:22
113 AAA 2021-01-28 10:31:56
111 CCC 2021-06-10 10:48:43
112 BBB 2021-07-18 20:08:17
111 BBB 2021-06-28 16:27:36
今作成できているデータ(df)<-同日に同じカテゴリーのものを同じ人が購入かつ返品しているデータ抽出
顧客番号 商品カテゴリ 日付 時刻
111 AAA 2021-02-13 09:43:12
113 AAA 2021-01-28 10:31:56
111 CCC 2021-06-10 10:48:43
出したいデータフレーム(df2) <-返品データに1列追加したい
顧客番号 商品カテゴリ 日付 時刻 返品後同日に購入をした
111 AAA 2021-02-13 09:43:12 1
112 CCC 2021-10-21 11:21:22 0
113 AAA 2021-01-28 10:31:56 1
111 CCC 2021-06-10 10:48:43 1
112 BBB 2021-07-18 20:08:17 0
111 BBB 2021-06-28 16:27:36 0
df1とdf2において、顧客番号と商品カテゴリ日付が一致するデータを抽出し、その後返品時刻の方が購入時刻より早いデータを新たな列に追加したいです。
発生している問題・エラーメッセージ
以下に示したソースコードを実行することで、顧客番号と商品カテゴリ日付が一致するデータを抽出するところまではできました。(df)
しかし、ここからdf1i,df2iそれぞれのデータフレームの時刻を比較して、dfに新たな列を作成する方法がどうしてもわかりません。
エラーメッセージ
該当のソースコード
df1i = df1.copy().set_index(['mbr_no', 'cate_nm','sal_date']) df2i = df2.copy().set_index(['mbr_no', 'cate_nm','sal_date']) df = df2i[df2i.index.isin(df1i.index.values)]
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
あなたの回答
tips
プレビュー