FeatureTools运行报错EntitySet对象无entity_from_dataframe属性如何解决
问题原因
你遇到的AttributeError: 'EntitySet' object has no attribute 'entity_from_dataframe'报错是FeatureTools版本不兼容导致的:
- 你参考的是v0.16.0旧版本的官方文档示例,
entity_from_dataframe方法仅在v1.0.0之前的FeatureTools版本中可用 - 你本地安装的FeatureTools是v1.0.0及以上的新版本,该版本已经将该方法废弃,替换为
add_dataframe方法
解决办法
方案1:修改代码适配新版本FeatureTools(推荐)
把你代码中调用entity_from_dataframe的部分替换为add_dataframe方法即可,修改后的完整代码如下:
import featuretools as ft data = ft.demo.load_mock_customer() transactions_df = data["transactions"].merge(data["sessions"]).merge(data["customers"]) transactions_df.sample(10) products_df = data["products"] products_df es = ft.EntitySet(id="customer_data") # 替换为add_dataframe方法,调整对应参数名即可 es = es.add_dataframe( dataframe_name="transactions", dataframe=transactions_df, index="transaction_id", time_index="transaction_time", logical_types={"product_id": ft.LogicalType("categorical"), "zip_code": ft.LogicalType("zipcode")} ) es
注意:新版本除了方法名变更外,原
entity_id参数改名为dataframe_name,原variable_types参数改名为logical_types,参数取值逻辑保持一致。
方案2:安装对应版本的FeatureTools兼容旧文档代码
如果你需要完全沿用旧版本示例代码,不需要适配新特性,可以直接安装v0.16.0版本的FeatureTools:
pip install featuretools==0.16.0
安装完成后重新运行原有代码即可正常执行。
内容的提问来源于stack exchange,提问作者Enjoy
相关产品推荐
相关产品推荐

