我已经从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
转换为数值数据。 最佳答案
我认为需要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
,然后第一个bin是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
关于python - 如何将年龄划分功能替换为数字数据?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50784907/