在机器学习中,大多数算法只可处理数值型数据,fit的时候要求输入数组或矩阵,因此对于文字型数据要进行编码处理,即转化为数值型。在sklearn.preprocessing中有OrdinalEncoder /LabelEncoder/OneHotEncoder /get_dummies 可以将离散的类别转换为int。下面具体的操作方式说明。
OrdinalEncoder,LabelEncoder
OrdinalEncoder,与LabelEncoder用法 相似,效果是一样的。
OrdinalEncoder:特征专用,能够将分类特征转换为分类数值
LabelEncoder:标签专用,能够将分类转换为分类数值
二者都是将类别转换成新的数组,0到类别数n-1,注意并非0,1
import pandas as pd
from pandas import Series,DataFrame
import numpy as np
from sklearn.preprocessing import StandardScaler,OneHotEncoder,OrdinalEncoder,LabelEncoder
df=pd.read_table('salary.txt',sep=',')
df.head()
df.columns
df.drop(columns=['final_weight','education_num','capital_gain', 'capital_loss'],axis=1,inplace=True)