Не удается преобразовать столбец при использовании FeatureTools в normalize_entity с отметками времени - PullRequest
0 голосов
/ 12 июня 2018

Я пытаюсь использовать FeatureTools для нормализации таблицы для синтеза объектов.Моя таблица похожа на ответ Мак-Кантера из Как применить Deep Feature Synthesis к одной таблице .Я использую исключение. Буду признателен за помощь в работе.

Исключение происходит из featuretools.entityset.entity.entityset_convert_variable_type, который, похоже, не обрабатывает типы времени.

Какова природаисключение, и можно ли обойти его?

Таблица, df:

PatientId | AppointmentID | Gender | ScheduledDay | AppointmentDay | Age | Neighbourhood | Scholarship | Hipertension | Diabetes | Alcoholism | Handcap | SMS_received | No-show
12345     | 5642903       | F     | 2016-04-29    | 2016-04-29     | 62  | JARDIM DA     | 0           | 1            | 0        | 0          | 0       | 0            | No
67890     | 3902943       | M     | 2016-03-18    | 2016-04-29     | 44  | Other Nbh     | 1           | 1            | 0        | 0          | 0       | 0            | Yes
...

Мой код:

appointment_entity_set = ft.EntitySet('appointments')
appointment_entity_set.entity_from_dataframe(
    dataframe=df, entity_id='appointments',
    index='AppointmentID', time_index='AppointmentDay')

# error generated here
appointment_entity_set.normalize_entity(base_entity_id='appointments',
    new_entity_id='patients',
    index='PatientId')

ScheduledDay и AppointmentDay имеют тип pandas._libs.tslib.Timestamp как в случае Ответ Макса Кантера .

Исключение:

~/.virtualenvs/trane/lib/python3.6/site-packages/featuretools/entityset/entity.py in entityset_convert_variable_type(self, column_id, new_type, **kwargs)
    474         df = self.df
--> 475         if df[column_id].empty:
    476             return
    477         if new_type == vtypes.Numeric:

Exception: Cannot convert column first_appointments_time to <class 'featuretools.variable_types.variable.DatetimeTimeIndex'>

featuretools == 0,1.21

Этот набор данных из конкурса Kaggle Show или No Show

1 Ответ

0 голосов
/ 12 июня 2018

Появляющаяся ошибка, похоже, связана с тем, как pandas читает переменную AppointmentDay.На самом деле у нас есть пример ядра Kaggle с этим набором данных.Там нам нужно было использовать pandas.read_csv с parse_dates:

data = pd.read_csv("data/KaggleV2-May-2016.csv", parse_dates=['AppointmentDay', 'ScheduledDay'])

, который возвращает серию панд, значения которой имеют тип numpy.datetime64.Это должно нормально загружаться в Featuretools.

Кроме того, можете ли вы убедиться, что у вас последняя версия Featuretools из pip?В этой трассировке стека есть команда set trace, которой нет в последней версии.

...