如何使用熊猫对一系列值进行编码



我有一个熊猫数据帧,并且有一个列age .我想将其编码为按特定范围分隔的分类值,例如,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

最新更新