pandas.get_dummies конвертирует float64 - PullRequest
0 голосов
/ 08 июня 2018

Я использую pandas.get_dummies для преобразования некоторых моих категориальных переменных перед использованием tpot.Моя проблема в том, что у меня есть непрерывная переменная, например, время, и она преобразуется в категории, даже если это непрерывная переменная.Похоже, что это происходит не во всех случаях, но я не могу понять, когда это произойдет.

Я проверил следующее:

pd.isnull(my_dataframe).any()

и все категории говорят о ложном

print(type(features[0,5])) # the time category with my continuous variable

и вывод <class 'numpy.float64'>

Однако, когда я делаю

df_dummies=pd.get_dummies(my_dataframe)
df_dummies.columns

Он создает столбец для каждого значения моего временного объекта.

Например: «Время (мин) _2», «Время (мин) _3», «Время (мин) _4», «Время (мин) _5», «Время (мин) _6», «Время (мин) _10»',' Время (мин) _15 ',' Время (мин) _16 ',' Время (мин) _20 ',' Время (мин) _25 ',' Время (мин) _30 '

Любые идеи, чтоможет быть здесь не так?

1 Ответ

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

Ваша категория времени выглядит так, как будто она была случайно приведена к str где-то вдоль линии.

import pandas as pd
import numpy as np
from datetime import datetime
df = pd.DataFrame({'foo':np.random.choice([1, 2], 12),
                   'date':pd.date_range(start=datetime.now(),
                                        periods=12, freq='1min'),
                   'baz': np.linspace(0, 1, 12)})
df.dtypes
df_cast = df.copy()
df_cast['date'] = df_cast['date'].astype(str)
df_cast.dtypes

Выход

foo      object
date     object
baz     float64
dtype: object

Вы можетеубедитесь, что поведение pd.get_dummies с df_cast соответствует тому, что вы испытываете, и что оно правильно обрабатывает объекты floats, ints и datetime, прежде чем любое из полей будет приведено к str.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...