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

航班票价预测ML项目数据转换报错:KeyError: 'Date_of_Journey'

航班票价预测项目:KeyError: 'Date_of_Journey' 解决方案

问题背景

参考Krish Naik的葡萄酒质量预测端到端ML项目流程搭建航班票价预测项目时,运行03_data_transformation.ipynb中的数据转换代码触发KeyError: 'Date_of_Journey',日志显示当前读取的DataFrame已无该字段。

排查与解决步骤

1. 回溯预处理环节的字段操作

  • 检查前置notebook(如01_data_ingestion.ipynb、02_data_preprocessing.ipynb)的代码,确认是否在数据清洗、过滤、去重等操作中误删除了Date_of_Journey字段。
  • 修复方式:在预处理代码中添加字段校验逻辑(如assert 'Date_of_Journey' in df.columns);若需对该字段做衍生处理,确保先保留原始字段或完成衍生后再处理原始字段。

2. 核查数据读取逻辑

  • 检查数据读取代码(如pd.read_csv()),确认是否使用usecols参数过滤了该字段,或数据源文件本身缺失Date_of_Journey列。
  • 修复方式:核对数据源文件的列名结构,确保目标字段存在;移除读取代码中不必要的列过滤参数,或明确指定包含Date_of_Journey。

3. 修正DataTransformation类的字段引用

  • 查看DataTransformation类的代码,确认是否在转换逻辑中错误引用了Date_of_Journey,但该字段已被预处理阶段重命名或替换。
  • 修复方式:将类中所有对Date_of_Journey的引用替换为预处理后实际存在的字段名;若字段被重命名,统一使用新名称。

4. 清理缓存的中间数据

  • 检查是否存在缓存的中间数据文件(如预处理后保存的csv/parquet文件),该文件可能在之前的运行中丢失了目标字段。
  • 修复方式:删除缓存的中间文件,重新运行前置预处理流程,生成包含完整字段的中间数据。

调试技巧

  • 在数据读取完成后,添加print(df.columns)或df.info()语句,实时确认DataFrame的字段列表,定位字段丢失的具体环节。
  • 在DataTransformation类的转换方法开头添加校验逻辑,提前暴露问题:
    if 'Date_of_Journey' not in self.df.columns:
        raise ValueError("DataFrame缺失必填字段: Date_of_Journey")
    

内容的提问来源于stack exchange,提问作者Md. Ehsanul Haque Kanan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 10:52:36