Pandas逐行检查DataFrame值是否存在于对应路径Excel并更新结果
实现方案
依赖安装
首先确保你已经安装了所需依赖:
pip install pandas openpyxl
核心实现步骤
- 先封装一个检查指定值是否存在于Excel文件的工具函数
- 逐行对DF1应用函数,更新Result列
完整代码示例
import pandas as pd def check_value_in_excel(check_value, excel_path): try: # 读取Excel所有sheet内容,仅需检查指定sheet时可添加sheet_name参数 excel_content = pd.read_excel(excel_path, sheet_name=None) for sheet_df in excel_content.values(): if check_value in sheet_df.values: return True return False except: # 文件不存在、格式损坏等异常场景返回False,可按需调整为其他标识 return False # 逐行处理更新Result列 DF1['Result'] = DF1.apply(lambda row: check_value_in_excel(row['Value'], row['Path']), axis=1)
优化&注意事项
- 性能优化:如果DF1中存在大量重复的Path值,建议增加路径读取缓存,避免重复读取同一个Excel文件,大幅降低IO耗时
- 类型匹配:注意Value列的数据类型要和Excel中对应值的类型保持一致,避免出现整数和浮点数格式不匹配导致的判断错误
- Sheet指定:如果明确只需要检查Excel中某个固定sheet,直接给
pd.read_excel传入sheet_name="你的sheet名"即可,不需要遍历所有sheet,能提升运行速度
内容的提问来源于stack exchange,提问作者Okr100
相关产品推荐
相关产品推荐

