微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python – 如何使用pandas对一系列值进行编码

我有一个pandas数据框,并且有一个列年龄.我想将其编码为由特定范围分隔的分类值,例如,15岁以下的年龄应为0,15到30之间应更改为1,依此类推.

我找到了这样做的方法(在经历了关于使用&和and的巨大混乱之后)

age = X.loc[:, 'Age']

age[ age<15 ] = 0
age[ (15<age) & (age<=30) ] = 1
age[ (30<age) & (age<=50) ] = 2
age[ (50<age) & (age<=80) ] = 3

这是最好的方式吗?我可以这样做,例如使用LabelEncoder吗?

解决方法:

你可以使用cut

df = pd.DataFrame({'Age':[0,1,14,15,30,31,50,51,79,80]})

bins = [0,14,30,50,80]
labels=[0,1,2,3]
df['bins'] = pd.cut(df['Age'], bins=bins, labels=labels, include_lowest=True)
print (df)
   Age bins
0    0    0
1    1    0
2   14    0
3   15    1
4   30    1
5   31    2
6   50    2
7   51    3
8   79    3
9   80    3

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐