Как я могу заменить возрастные функции в числовые данные? - PullRequest
0 голосов
/ 10 июня 2018

Я создал agebin столбец из age столбцов.У меня есть диапазон ages, но как я могу преобразовать их в agebin числовой тип данных, потому что я хочу проверить, является ли agebin важной функцией или нет.

Я попробовал следующий код для определения возраста:

    traindata = data.assign(age_bins =  pd.cut(data.age, 4, retbins=False, include_lowest=True))

    data['agebin'] = traindata['age_bins']

data['agebin'].unique()

[[16.954, 28.5], (28.5, 40], (40, 51.5], (51.5, 63]]
Categories (4, object): [[16.954, 28.5] < (28.5, 40] < (40, 51.5] < (51.5, 63]]

Что я пробовал:

data['enc_agebin'] = data.agebin.map({[16.954, 28.5]:1,(28.5, 40]:2,(40, 51.5]:3,(51.5, 63]:4})

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

1 Ответ

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

Я думаю, нужен параметр labels в cut:

data = pd.DataFrame({'age':[10,20,40,50,44,56,12,34,56]})

data['agebin'] = pd.cut(data.age,bins=4,labels=range(1, 5), retbins=False,include_lowest=True)
print (data)
   age agebin
0   10      1
1   20      1
2   40      3
3   50      4
4   44      3
5   56      4
6   12      1
7   34      3
8   56      4

Или используйте labels=False, затем первый бин равен 0, а последний 3 (какrange(4)):

data['agebin'] = pd.cut(data.age, bins=4, labels=False, retbins=False, include_lowest=True)
print (data)
   age  agebin
0   10       0
1   20       0
2   40       2
3   50       3
4   44       2
5   56       3
6   12       0
7   34       2
8   56       3
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...