0

Kaggle のこのデータを使用してノートブックを作成しています。両方に ID 列があることを示すために、2 つのテーブルのスクリーンショットを次に示します。 ここに画像の説明を入力

エンティティ セットをセットアップして関係を追加しようとするときのコードを次に示します。

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> はエンティティ セットに存在しません'

Entityset は存在​​しますが、関係を追加することはできません。これがこの全体のポイントです。 ここに画像の説明を入力

アドバイスやガイダンスは大歓迎です。

編集: 解決策 このコードは、以下の回答を使用し、ビューロー テーブルのインデックス列を一意の正しい列に変更します。

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)
4

1 に答える 1