无法在 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')