比较两个DataFrame列与第二个DataFrame中的第三列



我正在尝试比较两种不同的数据框架列"Source2/Source3"对"Spider"如果它们是匹配的,那么创建列True/False。其次,如果有一个匹配(True),那么我要确保列"Product_ID'在schedule_df是12345。如果是这种情况,则标记为"True"否则标记为"False"。

到目前为止,在我的代码中,我已经比较了两个数据框架,以确保源和蜘蛛匹配。我正在努力将它与product_id列进行比较。

consolidate_df

Source2      Source3
Jen_Arrest    Jen_Jail
Ben_Arrest    Ben_Jail

scheduler_df

Spider      Product_ID
Jen_Arrest   88888
Ben_Arrest   12345

当前代码:

consolidate_df = pd.read_excel(os.path.join(path, consolidated_fn), sheet_name='Poseidon-2')
scheduler_df = pd.read_excel(os.path.join(path, scheduler_fn))
consolidate_df['isScheduler'] = consolidate_df['Source_2'].isin(scheduler_df['Spider']) | consolidate_df['Source_3'].isin(scheduler_df['Spider']) 

最后df:

Source2      isScheduler   isProd
Jen_Arrest   True         False (because 8888 does not match 12345)
Ben_Arrest   True         True (because 12345 matches 12345)

我们可以在scheduler_df中创建product_id的测试:

scheduler_df['prod_test']=scheduler_df.Product_ID.apply(lambda x:True if x==12345 else False)

则创建列isProd:

consolidate_df['isProd']=consolidate_df['isScheduler'] & scheduler_df['prod_test'] | consolidate_df['isScheduler'] & scheduler_df['prod_test']