pd.merge_asof() based on Time-Difference not merging all values - Pandas

前端 未结 2 728
不知归路
不知归路 2021-01-28 17:05

I have two dataframes, one with news and the other with stock price. Both the dataframes have a \"Date\" column. I want to merge them on a gap of 5 days.

Lets say my new

2条回答
  •  一生所求
    2021-01-28 17:49

    You can swap the left and right dataframe:

    df = pd.merge_asof(
            df1,
            df2,
            left_on='News_Dates',
            right_on='Dates',
            tolerance=pd.Timedelta('5D'),
            direction='nearest'
        )
    
    df = df[['Dates', 'News_Dates', 'News', 'Price']]
    print(df)
    
            Dates News_Dates                                               News Price
    0 2018-10-04 2018-09-29  Huge blow to ABC Corp. as they lost the 2012 t... 120
    1 2018-10-04 2018-09-30                           ABC Corp. suffers a loss 120
    2 2018-10-04 2018-10-01                            ABC Corp to Sell stakes 120
    3 2018-12-24 2018-12-20       We are going to comeback strong said ABC CEO 131
    4 2018-12-24 2018-12-22            Shares are down massively for ABC Corp. 131
    

提交回复
热议问题