使用IsWeekend变换基元构建基线模型时遇时间索引缺失错误
问题解决:time index not found in dataframe
问题原因
IsWeekend变换基元依赖时间类型列生成特征,报错的核心原因是Featuretools在trips实体中找不到可用于生成该特征的时间索引列,常见情况包括:
- trips数据中没有时间列,或时间列未转换为datetime格式
- 定义entities时未指定时间索引(time_index),也未标记时间列的变量类型
解决方法
先处理时间列的数据类型
确保trips数据中的时间列(比如pickup_datetime)是datetime格式,若不是则转换:import pandas as pd trips['pickup_datetime'] = pd.to_datetime(trips['pickup_datetime'])定义entities时指定时间索引
在entities字典中,给trips实体明确指定时间索引参数,或者标记时间列的变量类型:# 方式一:直接指定time_index entities = { "trips": (trips_df, "trip_id", "pickup_datetime") # 格式:(数据框, 主键列名, 时间索引列名) } # 方式二:通过variable_types标记时间列 from featuretools import variable_types as vtypes entities = { "trips": (trips_df, "trip_id", None, {"pickup_datetime": vtypes.Datetime}) }重新执行特征生成代码
调整entities定义后,再运行你原来的ft.dfs代码,IsWeekend就能正常识别时间列并生成周末特征。
内容的提问来源于stack exchange,提问作者Roy Panyako
相关产品推荐
相关产品推荐

