导包
import numpy as np
import pandas as pd
from pandas import Series,DataFrame
from sklearn.preprocessing import OneHotEncoder,LabelEncoder
from sklearn.neighbors import KNeighborsClassifier
salary = pd.read_csv('./salary.txt')
salary.head()
在这里插入图片描述
salary.drop(labels=['final_weight','education_num','capital_gain','capital_loss'],
axis = 1,inplace=True)
salary.head()
OridinalEncoder使用
返回的数据就是一个numpy
查看列
对数据进行转换
得到unique并将其付给u
对其进行排序
LabelEncoder的使用
在传输数据时需要一列一列进行传输,也可以进行数据转换,使用for循环可以实现与上述方法相同的效果,在最后可以看到对数据都进行了量化
le = LabelEncoder()
salary_label = le.fit_transform(salary['salary'])
salary_label
le.fit_transform(salary['education'])
for col in salary.columns:
salary[col] = le.fit_transform(salary[col])
salary.head()
label就是标签的意思,给数据加上一个数量标签,就是对数据进行量化
OneHotEncoder方法
edu.drop_duplicates().count()
edu = salary[['education']] #转换没有问题
edu
oh = OneHotEncoder()
oh.fit_transform(edu)
onehot.toarray()[:10] #查看前是个就不会有省略问题 #如果是标记为1,不是标记为0