Я создал agebin
колонку из столбца age
. Я создал agebin
, используя pd.cut()
проверить ниже:
traindata = data.assign(age_bins = pd.cut(data.age, 4, retbins=False,labels=range(1, 5), include_lowest=True))
data['agebin'] = traindata['age_bins']
Теперь, когда я вижу data.info, у agebin
есть category
dtype, и я хочу, чтобы это были числовые данные, потому что я получаю ошибку Value во время учебной модели. Как преобразовать dtype: category в числовую. Я смущен, как dtype категоричен, потому что, когда я вижу data['agebin'].head()
все значения равны 1,2,3 или 4, но в data.info он показывает agebin
категорию как категориальную.
Я хочу изменить agebin
от категоричного до числового.
использовать pd.to_numeric
data.agebin= pd.to_numeric(data.agebin, errors='coerce')
@nimrodz отлично отвечает на вопрос.
Я просто хочу добавить, что причина, по которой вы получаете category
dtype для age_bins, связана с поведением pd.cut
.
out: pandas.Categorical, Series или ndarray
Массивный объект, представляющий соответствующий бит для каждого значения x. Тип зависит от значения меток.
- последовательность скаляров: возвращает серию для серии x или pandas. Категорически подходит для всех других входов. Значения, хранящиеся внутри, независимо от типа в последовательности.
- False: возвращает ndarray целых чисел.
Если вы установите labels=False
он вернет целое число по умолчанию для age_bins
, однако оно начнет нумерацию в 0. Вы можете просто добавить один, если хотите.
traindata = data.assign(age_bins = pd.cut(data.age, 4, retbins=False, labels=False, include_lowest=True))
traindata['age_bins'] = traindata.age_bins+1