df1.dateがdf2の2か月前以内にある2つのパンダデータフレームを結合する必要があります。その期間中に何人のトレーダーが同じ株式を取引したかを計算し、購入した株式の総数を数えたいと思います。日付フィールドが互いに2ヶ月以内の2つのパンダデータフレームを結合
私は以下の方法を試してみましたが、それほど複雑ではありませんでした。よりスマートでシンプルなソリューションがあると私は信じています。
Pandas: how to merge two dataframes on offset dates?
サンプルデータセットは、以下である:
DF1(team_1):
date shares symbol trader
31/12/2013 154 FDX Max
30/06/2016 2367 GOOGL Max
21/07/2015 293 ORCL Max
18/07/2015 304 ORCL Sam
DF2(team_2):
date shares symbol trader
23/08/2015 345 ORCL John
04/07/2014 567 FB John
06/12/2013 221 ACER Sally
31/11/2012 889 HP John
05/06/2010 445 ABBV Kate
要求出力:
これは2つの新しい列を追加します... 'team_2_traders' = DF2にリストされている日付から前の2か月間に同じ在庫を交換したteam_1のトレーダーの数です。 'team_2_shares_bought' = DF2に掲載されている日付から過去2ヶ月間にteam_1が購入した株式の合計数。
誰かがこれを喜ばせるには、以下のスニペットを使用してデータフレームを設定してください。実際のデータセットには数百万行と6,000の会社株式が含まれています。
team_1 = {'symbol':['FDX','GOOGL','ORCL','ORCL'],
'date':['31/12/2013','30/06/2016','21/07/2015','18/07/2015'],
'shares':[154,2367,293,304],
'trader':['Max','Max','Max','Sam']}
df1 = pd.DataFrame(team_1)
team_2 = {'symbol':['ORCL','FB','ACER','HP','ABBV'],
'date':['23/08/2015','04/07/2014','06/12/2013','31/11/2012','05/06/2010'],
'shares':[345,567,221,889,445],
'trader':['John','John','Sally','John','Kate']}
df2 = pd.DataFrame(team_2)
ありがとうございます。
お使いのソリューションには、必要な日付範囲の検索が含まれていません。 – mattblack
私は制約を逃しました、再度確認してください。私はコードを更新しました。 – su79eu7k
うまくいきます、ありがとう!私は後で大きなデータセットでそれを試してみましょう。乾杯! – mattblack