我正在使用来自 Kaggle 的这些数据编写笔记本。这是两个表的屏幕截图,只是为了显示我们在两个表中都有 ID 列。
这是我尝试设置实体集并添加关系时的代码。
import featuretools as ft
import pandas as pd
es = ft.EntitySet()
es = es.add_dataframe(dataframe=train_sampled, index='new_index', dataframe_name='application', make_index=True)
es = es.add_dataframe(dataframe=bureau, index='new_index', dataframe_name='bureau', make_index=True)
new_relationship = ft.Relationship(entityset=es,parent_dataframe_name='application',parent_column_name='SK_ID_CURR',
child_dataframe_name='bureau',child_column_name='SK_ID_CURR')
es = es.add_relationship(new_relationship)
这是我得到的错误,没有任何意义。
KeyError: 'DataFrame <Relationship: Bureau.SK_ID_CURR -> application.SK_ID_CURR> 实体集中不存在'
非常感谢任何建议或指导。
编辑:解决方案 此代码使用下面的答案,并将局表中的索引列更改为唯一的正确列。
es = ft.EntitySet()
es = es.add_dataframe(dataframe=train_sampled, index='SK_ID_CURR', dataframe_name='application', make_index=False)
es = es.add_dataframe(dataframe=bureau, index='SK_ID_BUREAU', dataframe_name='bureau', make_index=False)
new_relationship = ft.Relationship(entityset=es,parent_dataframe_name='application',parent_column_name='SK_ID_CURR',
child_dataframe_name='bureau',child_column_name='SK_ID_CURR')
es = es.add_relationship(relationship=new_relationship)