使用sklearn之LabelEncoder将Label标准化的方法
LabelEncoder可以将标签分配一个0—n_classes-1之间的编码
将各种标签分配一个可数的连续编号:
>>>fromsklearnimportpreprocessing >>>le=preprocessing.LabelEncoder() >>>le.fit([1,2,2,6]) LabelEncoder() >>>le.classes_ array([1,2,6]) >>>le.transform([1,1,2,6])#TransformCategoriesIntoIntegers array([0,0,1,2],dtype=int64) >>>le.inverse_transform([0,0,1,2])#TransformIntegersIntoCategories array([1,1,2,6])
>>>le=preprocessing.LabelEncoder() >>>le.fit(["paris","paris","tokyo","amsterdam"]) LabelEncoder() >>>list(le.classes_) ['amsterdam','paris','tokyo'] >>>le.transform(["tokyo","tokyo","paris"])#TransformCategoriesIntoIntegers array([2,2,1],dtype=int64) >>>list(le.inverse_transform([2,2,1]))#TransformIntegersIntoCategories ['tokyo','tokyo','paris']
将DataFrame中的所有ID标签转换成连续编号:
fromsklearn.preprocessingimportLabelEncoder importnumpyasnp importpandasaspd df=pd.read_csv('testdata.csv',sep='|',header=None)
012345 0375255503854 11732209648 2281056514516 3274941305319 44429814613 511262114733 603922333543 718154752534 823249331 9125736404224
le=LabelEncoder() le.fit(np.unique(df.values)) df.apply(le.transform)
012345 0375255503854 11732209648 2281056514516 3274941305319 44429814613 511262114733 603922333543 718154752534 823249331 9125736404224
将DataFrame中的每一行ID标签分别转换成连续编号:
importpandasaspd fromsklearn.preprocessingimportLabelEncoder fromsklearn.pipelineimportPipeline classMultiColumnLabelEncoder: def__init__(self,columns=None): self.columns=columns#arrayofcolumnnamestoencode deffit(self,X,y=None): returnself#notrelevanthere deftransform(self,X): ''' TransformscolumnsofXspecifiedinself.columnsusing LabelEncoder().Ifnocolumnsspecified,transformsall columnsinX. ''' output=X.copy() ifself.columnsisnotNone: forcolinself.columns: output[col]=LabelEncoder().fit_transform(output[col]) else: forcolname,colinoutput.iteritems(): output[colname]=LabelEncoder().fit_transform(col) returnoutput deffit_transform(self,X,y=None): returnself.fit(X,y).transform(X)
MultiColumnLabelEncoder(columns=[0,1,2,3,4,5]).fit_transform(df)
或者
df.apply(LabelEncoder().fit_transform)
012345 0888759 1352218 2719871 3676492 4941080 5133325 6064547 7427136 8500204 9295663
#CreatesometoydatainaPandasdataframe fruit_data=pd.DataFrame({ 'fruit':['apple','orange','pear','orange'], 'color':['red','orange','green','green'], 'weight':[5,6,3,4] })
colorfruitweight 0redapple5 1orangeorange6 2greenpear3 3greenorange4
MultiColumnLabelEncoder(columns=['fruit','color']).fit_transform(fruit_data)
或者
fruit_data[['fruit','color']]=fruit_data[['fruit','color']].apply(LabelEncoder().fit_transform)
colorfruitweight 0205 1116 2023 3014
以上这篇使用sklearn之LabelEncoder将Label标准化的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。