You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于Pandas实现DataFrame列匹配及Product_ID校验的技术问询

解决DataFrame匹配与Product_ID校验问题

需求

  • 将consolidate_df的Source2/Source3列与scheduler_df的Spider列匹配,生成isScheduler列标记匹配结果(True/False)
  • 若isScheduler为True,校验对应scheduler_df中的Product_ID是否为12345,生成isProd列标记结果

数据示例

consolidate_df

Source2      Source3
Jen_Arrest    Jen_Jail
Ben_Arrest    Ben_Jail

scheduler_df

Spider      Product_ID
Jen_Arrest   88888
Ben_Arrest   12345

现有代码

import pandas as pd
import os

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))

# 注意:原代码中列名为Source_2,示例中为Source2,需根据实际数据修正列名
consolidate_df['isScheduler'] = consolidate_df['Source2'].isin(scheduler_df['Spider']) | consolidate_df['Source3'].isin(scheduler_df['Spider']) 

解决方案

要生成isProd列,核心是建立Spider与「Product_ID是否为12345」的映射关系,再匹配到consolidate_df中:

  1. 从scheduler_df生成映射字典,键为Spider值,值为对应Product_ID是否等于12345
  2. 遍历consolidate_df每一行,检查Source2或Source3是否在映射字典中,取出对应的校验结果

完整代码如下:

import pandas as pd
import os

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))

# 生成isScheduler列(确保列名与实际数据一致)
consolidate_df['isScheduler'] = consolidate_df['Source2'].isin(scheduler_df['Spider']) | consolidate_df['Source3'].isin(scheduler_df['Spider']) 

# 建立Spider到Product_ID是否为12345的映射
prod_check_map = scheduler_df.set_index('Spider')['Product_ID'].eq(12345).to_dict()

# 生成isProd列:匹配到Spider则取对应校验结果,否则为False
consolidate_df['isProd'] = consolidate_df.apply(
    lambda row: prod_check_map.get(row['Source2'], False) or prod_check_map.get(row['Source3'], False),
    axis=1
)

# 提取目标列输出
result_df = consolidate_df[['Source2', 'isScheduler', 'isProd']]
print(result_df)

最终输出结果

Source2      isScheduler   isProd
Jen_Arrest   True         False
Ben_Arrest   True         True

内容的提问来源于stack exchange,提问作者python2134

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 07:20:32