sklearn实现one-hot编码处理符号型数据

1、data.csv数据

2.使用one-hot编码进行转化 

from sklearn.feature_extraction import DictVectorizer
from sklearn import preprocessing
import csv

"""
函数说明:将符号特征转换为one-hot向量特征
返回值:向量特征,向量标签
"""
def DataProgress(file):
    with open(file,'r') as fr:
        data_csv=csv.reader(fr)
        headers=next(data_csv)   #获取文件的第一行头文件
        featureList=[]  #特征列表
        labelList=[]    #标签列表
        for row in data_csv:
            labelList.append(row[-1])  #将标签数据添加到标签列表里
            rowDict={}
            for i in range(1,len(row)-1):
                rowDict[headers[i]]=row[i]
            featureList.append(rowDict)

        #特征转换为向量
        vec_features=DictVectorizer()
        vector_X=vec_features.fit_transform(featureList).toarray()
        #标签转换为向量
        vec_lbels=preprocessing.LabelBinarizer()
        vector_Y=vec_lbels.fit_transform(labelList)
        
        return vector_X,vector_Y


if __name__=='__main__':
    file='data.csv'
    features,labels=DataProgress(file)
    print(features)
    print(labels)

结果如下:

 

 

 

 

 

全部评论

相关推荐

三年之期已到我的offer快到碗里来:9硕都比不上9本
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务