无法在 featuretools 实体集中添加关系
Unable to add relationship in featuretools entity set
特征工具的新手,在创建实体时出现此错误
Unable to add relationship because child column 'order_id' in 'orders' is also its index
我怀疑 featuretools 期望一对多关系,有没有办法指定一对一关系?
是的,Featuretools 通常期望 EntitySet 中的 table 之间存在一对多关系,这就是为什么子列不能作为其 table.
的索引的原因
在关系创建中没有办法覆盖它,但您可以采取措施在子数据框中使用不同的索引列,从而允许 order_id
成为关系的子列。
您可以在 prejoin_foodorder
中创建一个新的索引列,方法是将 make_index=True
和索引设置为在将 table 添加到 EntitySet 时不在 DataFrame 中的某个列名。这将在 DataFrame 中创建一个新的整数列,范围从 0 到数据帧的长度。然后该列将用作 DataFrame 的索引,留下 order_id
用作关系的子列。
es = EntitySet()
... add any other dataframes to the EntitySet ...
es.add_dataframe('prejoin_foodorder', index='new_index', make_index=True, ...)
es.add_relationship(parent_dataframe_name='orders',
parent_column_name='id',
child_dataframe_name='prejoin_foodorder',
child_column_name='order_id')
特征工具的新手,在创建实体时出现此错误
Unable to add relationship because child column 'order_id' in 'orders' is also its index
我怀疑 featuretools 期望一对多关系,有没有办法指定一对一关系?
是的,Featuretools 通常期望 EntitySet 中的 table 之间存在一对多关系,这就是为什么子列不能作为其 table.
的索引的原因在关系创建中没有办法覆盖它,但您可以采取措施在子数据框中使用不同的索引列,从而允许 order_id
成为关系的子列。
您可以在 prejoin_foodorder
中创建一个新的索引列,方法是将 make_index=True
和索引设置为在将 table 添加到 EntitySet 时不在 DataFrame 中的某个列名。这将在 DataFrame 中创建一个新的整数列,范围从 0 到数据帧的长度。然后该列将用作 DataFrame 的索引,留下 order_id
用作关系的子列。
es = EntitySet()
... add any other dataframes to the EntitySet ...
es.add_dataframe('prejoin_foodorder', index='new_index', make_index=True, ...)
es.add_relationship(parent_dataframe_name='orders',
parent_column_name='id',
child_dataframe_name='prejoin_foodorder',
child_column_name='order_id')