如何向新实体添加多个关系?
How to add multiple relationships to a new entity?
我正在尝试将多个关系同时添加到我创建的实体集中。我使用以下代码:
import featuretools as ft
data = ft.demo.load_mock_customer()
customers_df = data["customers"]
sessions_df = data["sessions"]
transactions_df = data["transactions"]
entities = {
"customers" : (customers_df, "customer_id"),
"sessions" : (sessions_df, "session_id", "session_start"),
"transactions" : (transactions_df, "transaction_id", "transaction_time")}
es = ft.EntitySet('es',entities=entities)
relationships = [("sessions", "session_id", "transactions", "session_id"),
("customers", "customer_id", "sessions", "customer_id")]
es.add_relationships(relationships)
它抛出 AttributeError: 'tuple' object has no attribute 'child_entity'
。这种将多个实体添加到实体集的方法是否正确(我认为如果我正确阅读 official doc 是正确的)还是我遗漏了什么?
add_relationships
的输入必须是关系对象列表。这是将关系添加到实体集的方式:
relationships = []
parent = es["sessions"]["session_id"]
child = es["transactions"]["session_id"]
relationship = ft.Relationship(parent, child)
relationships.append(relationship)
parent = es["customers"]["customer_id"]
child = es["sessions"]["customer_id"]
relationship = ft.Relationship(parent, child)
relationships.append(relationship)
es.add_relationships(relationships)
作为替代方案,您可以直接构建具有关系的实体集。
relationships = [(
"sessions",
"session_id",
"transactions",
"session_id",
), (
"customers",
"customer_id",
"sessions",
"customer_id",
)]
es = ft.EntitySet(
id='es',
entities=entities,
relationships=relationships,
)
如果有帮助请告诉我。
我正在尝试将多个关系同时添加到我创建的实体集中。我使用以下代码:
import featuretools as ft
data = ft.demo.load_mock_customer()
customers_df = data["customers"]
sessions_df = data["sessions"]
transactions_df = data["transactions"]
entities = {
"customers" : (customers_df, "customer_id"),
"sessions" : (sessions_df, "session_id", "session_start"),
"transactions" : (transactions_df, "transaction_id", "transaction_time")}
es = ft.EntitySet('es',entities=entities)
relationships = [("sessions", "session_id", "transactions", "session_id"),
("customers", "customer_id", "sessions", "customer_id")]
es.add_relationships(relationships)
它抛出 AttributeError: 'tuple' object has no attribute 'child_entity'
。这种将多个实体添加到实体集的方法是否正确(我认为如果我正确阅读 official doc 是正确的)还是我遗漏了什么?
add_relationships
的输入必须是关系对象列表。这是将关系添加到实体集的方式:
relationships = []
parent = es["sessions"]["session_id"]
child = es["transactions"]["session_id"]
relationship = ft.Relationship(parent, child)
relationships.append(relationship)
parent = es["customers"]["customer_id"]
child = es["sessions"]["customer_id"]
relationship = ft.Relationship(parent, child)
relationships.append(relationship)
es.add_relationships(relationships)
作为替代方案,您可以直接构建具有关系的实体集。
relationships = [(
"sessions",
"session_id",
"transactions",
"session_id",
), (
"customers",
"customer_id",
"sessions",
"customer_id",
)]
es = ft.EntitySet(
id='es',
entities=entities,
relationships=relationships,
)
如果有帮助请告诉我。