Python 如果在某个范围和平均值之间,则根据日期合并两个df

Python 如果在某个范围和平均值之间,则根据日期合并两个df,python,pandas,dataframe,join,python-3.7,Python,Pandas,Dataframe,Join,Python 3.7,结果 df_A start_date end_date 0 2017-03-01 2017-04-20 1 2017-03-20 2017-04-27 2 2017-04-10 2017-05-25 3 2017-04-17 2017-05-22 df_B event_date price 0 2017-03-15 100 1 2017-02-22 200 2 2017-04-30 100 3 2017-05-2

结果

    df_A
    start_date  end_date
0   2017-03-01  2017-04-20
1   2017-03-20  2017-04-27
2   2017-04-10  2017-05-25
3   2017-04-17  2017-05-22

    df_B
    event_date  price
0   2017-03-15  100
1   2017-02-22  200
2   2017-04-30  100
3   2017-05-20  150
4   2017-05-23  150

如果数据帧不大,一种方法是使用笛卡尔积和过滤数据帧

    start_date  end_date        avg.price
0   2017-03-01  2017-04-20      100.0
1   2017-03-20  2017-04-27      
2   2017-04-10  2017-05-25      133.3
3   2017-04-17  2017-05-22      125

否则,请参见

如果您的数据帧不大,一种方法是使用笛卡尔积和过滤数据帧

    start_date  end_date        avg.price
0   2017-03-01  2017-04-20      100.0
1   2017-03-20  2017-04-27      
2   2017-04-10  2017-05-25      133.3
3   2017-04-17  2017-05-22      125
否则见

  start_date   end_date   avg.price
0 2017-03-01 2017-04-20  100.000000
1 2017-03-20 2017-04-27         NaN
2 2017-04-10 2017-05-25  133.333333
3 2017-04-17 2017-05-22  125.000000