Если в вашей таблице нет столбца, который можно использовать в качестве уникального индекса, вы можете автоматически создать его.При вызове EntitySet.entity_from_dataframe(...)
просто укажите имя столбца, которого в данный момент не существует в кадре данных, параметру index
и установите make_index=True
.Это автоматически создаст столбец с уникальными значениями.
Например, в приведенном ниже коде автоматически создается индекс event_id
import pandas as pd
import featuretools as ft
df = pd.DataFrame({"customer_id": [0, 1, 0, 1, 1],
"date": [pd.Timestamp("1/1/2018"), pd.Timestamp("1/1/2018"),
pd.Timestamp("1/1/2018"), pd.Timestamp("1/2/2018"),
pd.Timestamp("1/2/2018")],
"event_type": ["view", "purchase", "view", "cancel", "purchase"]})
es = ft.EntitySet(id="customer_events")
es.entity_from_dataframe(entity_id="events",
dataframe=df,
index="event_id",
make_index=True,
time_index="date")
print(es["events"])
в объекте событий, который вы можете увидеть, event_id теперь является переменной, даже если его нет висходный фрейм данных
Entity: events
Variables:
event_id (dtype: index)
date (dtype: datetime_time_index)
customer_id (dtype: numeric)
event_type (dtype: categorical)
Shape:
(Rows: 5, Columns: 4)