我有以下两个数据帧:
打印(Df)
perid completion_date store_banner
0 15001703 2020-09-16 0
1 1000190 2020-07-21 2
...打印(Df1)
perid status substatus sample_date
0 15001703 4 3 2020-09-20
1 15024030 5 2 2020-11-05
...我想合并这两个框架,以便将df1中的列添加到df (左合并),如果
perid代码匹配和天数差异示例_日期和完成_日期
小于或等于14天。
在伪代码中:(df.perid == df1.perid) & (df1.sample_date - df.completion_日期) <= 14天)
因此,获取(在上面的示例中):打印(最终_df)
perid completion_date store_banner status substatus sample_date
0 15001703 2020-09-16 0 4 3 2020-09-20我怎样才能做到这一点呢?
发布于 2021-02-25 17:29:10
使用DataFrame.merge通过以下方式将筛选减去的列转换为天数`Series.dt.days`
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-20https://stackoverflow.com/questions/66365729
复制相似问题