以下の 3 つを含む複数の列を持つ購入のデータフレームがあります。
PURCHASE_ID (index of purchase)
WORKER_ID (index of worker)
ACCOUNT_ID (index of account)
ワーカーは関連付けられた複数のアカウントを持つことができ、アカウントは複数のワーカーを持つことができます。
WORKER エンティティと ACCOUNT エンティティを作成して関係を追加すると、エラーが発生します。
KeyError: 'Variable: ACCOUNT_ID not found in entity'
これまでの私のコードは次のとおりです。
import pandas as pd
import featuretools as ft
import featuretools.variable_types as vtypes
d = {'PURCHASE_ID': [1, 2],
'WORKER_ID': [0, 0],
'ACCOUNT_ID': [1, 2],
'COST': [5, 10],
'PURCHASE_TIME': ['2018-01-01 01:00:00', '2016-01-01 02:00:00']}
df = pd.DataFrame(data=d)
data_variable_types = {'PURCHASE_ID': vtypes.Id,
'WORKER_ID': vtypes.Id,
'ACCOUNT_ID': vtypes.Id,
'COST': vtypes.Numeric,
'PURCHASE_TIME': vtypes.Datetime}
es = ft.EntitySet('Purchase')
es = es.entity_from_dataframe(entity_id='purchases',
dataframe=df,
index='PURCHASE_ID',
time_index='PURCHASE_TIME',
variable_types=data_variable_types)
es.normalize_entity(base_entity_id='purchases',
new_entity_id='workers',
index='WORKER_ID',
additional_variables=['ACCOUNT_ID'],
make_time_index=False)
es.normalize_entity(base_entity_id='purchases',
new_entity_id='accounts',
index='ACCOUNT_ID',
additional_variables=['WORKER_ID'],
make_time_index=False)
fm, features = ft.dfs(entityset=es,
target_entity='purchases',
agg_primitives=['mean'],
trans_primitives=[],
verbose=True)
features
エンティティを分離して多対多の関係を含めるにはどうすればよいですか?