Python 在datetime delta days条件下匹配数据帧

Python 在datetime delta days条件下匹配数据帧,python,pandas,dataframe,Python,Pandas,Dataframe,我有以下两个数据帧: 打印(df) 打印(df1) 我想合并这两个框架,这样,如果周期代码匹配并且样本日期和完成日期之间的天数差小于或等于14天,df1中的列将添加到df(左合并) 在伪代码中: (df.perid==df1.perid)和((df1.sample_date-df.completion_date)使用过滤器减去的列,通过以下方式转换为天: df1['completion\u date']=pd.to\u datetime(df1['completion\u date']) df

我有以下两个数据帧:

打印(df)

打印(df1)

我想合并这两个框架,这样,如果周期代码匹配并且样本日期和完成日期之间的天数差小于或等于14天,df1中的列将添加到df(左合并)

在伪代码中:

  • (df.perid==df1.perid)和((df1.sample_date-df.completion_date)使用过滤器减去的列,通过以下方式转换为天:

    df1['completion\u date']=pd.to\u datetime(df1['completion\u date'])
    df2['sample_date']=pd.to_datetime(df2['sample_date'])
    df=df1.merge(df2,on='perid')
    
    DF= DF[(DF.StPrimDealth-DF.FultEngLyDATA)。DT.DATE的确是正确的;我可能会考虑添加两个条件=0。为了清楚起见,完成日期指的是文档签名和测试的样本;因此,负值意味着在测试后我会签署。@ AlessandroCeccarelli -然后使用<代码>(df.sample\u date-df.completion\u date).dt.days.介于(0,14)
    之间,而不是
    (df.sample\u date-df.completion\u date).dt.days
    
              perid     completion_date  store_banner
    0       15001703     2020-09-16           0
    1       1000190      2020-07-21           2
    ...
    
             perid      status    substatus  sample_date
    0      15001703       4            3    2020-09-20
    1      15024030       5            2    2020-11-05
    
    ...
    
              perid     completion_date  store_banner      status    substatus  sample_date
    0       15001703     2020-09-16           0              4           3      2020-09-20
    
    df1['completion_date'] = pd.to_datetime(df1['completion_date'])
    df2['sample_date'] = pd.to_datetime(df2['sample_date'])
    
    df = df1.merge(df2, on='perid')
    df = df[(df.sample_date - df.completion_date).dt.days <= 14]
    
    print (df)
          perid completion_date  store_banner  status  substatus sample_date
    0  15001703      2020-09-16             0       4          3  2020-09-20