我已从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
有dtype category
,我希望它是数字数据,因为我在训练模型时遇到了Value错误。如何将dtype:category转换为数字。我很困惑dtype是如何分类的,因为当我看到data['agebin'].head()
所有值都是1,2,3或4时,但在data.info中它显示agebin
为分类。
我想将agebin
从分类更改为数字dtype。
答案 0 :(得分:4)
@nimrodz完美地回答了这个问题。
我只想补充一点,你为age_bins获得category
dtype的原因是pd.cut
的行为。
out:pandas.Categorical,Series或ndarray
类似于数组的对象,表示每个值的相应bin X。类型取决于标签的值。
- 标量序列:返回系列x或a的系列 所有其他输入的pandas.Categorical。存储在其中的值是 无论序列中的类型是什么。
- 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
答案 1 :(得分:3)
使用import pandas as pd
trainDf = pd.read_csv("drive/app/Sample/train.csv");//Here is your file
pd.to_numeric