离散特征值处理案例
程序员文章站
2024-03-08 09:32:10
...
import pandas as pd
import numpy as np
from sklearn.preprocessing import LabelEncoder, OneHotEncoder, LabelBinarizer, Binarizer
# 1.
data = pd.read_excel('score.xlsx')
print(data.head())
############ LabelEncoder:自动对元素进行编号,根据首字母大小顺序或者数字的大小顺序编号
le = LabelEncoder()
print(data['GENDER'])
gender = le.fit_transform(data['GENDER'])
data['GENDER_ID'] = gender
# del data['GENDER']
print(data)
################# OneHotEncoder: 独热编码,只有1位是1, 其余是0
ohe = OneHotEncoder(sparse=False);
print(data['GENDER_ID'])
gender = ohe.fit_transform(data[['GENDER_ID']]) # onehotencoder输入必须为二维矩阵,所以,要用[[ ]]
df_gender = pd.DataFrame(gender, columns=('ohe1', 'ohe2'))
data = pd.concat([data, df_gender], axis=1);
print(data) # concat合并两个dataframe
# 或者用pd.get_dummies可以直接把字符串转成独热编码(onehotencoder不行),相当于
# LabelEncoder+OneHotEncoder
a = pd.get_dummies(data['GENDER']);
print(a)
print(pd.concat([data, a], axis=1))
################ Binarizer: 以门槛值划分为0和1
data['SCORE'] = np.random.randint(1, 101, 6)
print(data)
bin = Binarizer(threshold=60)
pass_unpass = bin.fit_transform(data[['SCORE']]) # 输入必须为二维数据
data['pass/unpass'] = pass_unpass
print(data)
# 2.
data = pd.DataFrame({'name': ['joe', 'john', 'bob', 'kevin'],
'age': [10, 20, 30, 10],
'sex': ['male', 'male', 'female', 'male']})
data['age'] = LabelEncoder().fit_transform(data['age'])
print(data)
# LabelEncoder会自动对元素进行编号,根据首字母大小顺序或者数字的大小顺序编号。
data['name_LE'] = LabelEncoder().fit_transform(data['name'])
data['sex_LE'] = LabelEncoder().fit_transform(data['sex'])
print(data)
print(data.info())
# LabelBinarizer: 下标转化为0和1
data['sex_LB'] = LabelBinarizer().fit_transform(data['sex'])
print(data)
print(data.info())
上一篇: Java 时间日期详细介绍及实例
推荐阅读
-
离散特征值处理案例
-
PHP文件上传处理案例分析
-
(Java)通过案例讲解项目中表与表之间关联的处理步骤
-
SSM第三季-SpringMVC-Controller方法返回值&SSM整合案例&配置异常处理器
-
php处理json格式数据经典案例总结
-
关于expdp任务异常的处理案例详析
-
cakephp setFlash()及flash()方法都不起作用,setFlash()的具体用法及简单案例,该如何处理
-
cakephp setFlash()及flash()方法都不起作用,setFlash()的具体用法及简单案例,该如何处理
-
windows bat系列11:for处理案例四 去掉字符串中的空格
-
C语言异常处理机制案例讲解