Python 在datetime delta days条件下匹配数据帧
我有以下两个数据帧: 打印(df) 打印(df1) 我想合并这两个框架,这样,如果周期代码匹配并且样本日期和完成日期之间的天数差小于或等于14天,df1中的列将添加到df(左合并) 在伪代码中: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.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