LabelEncoder可以将标签分配一个0—n_classes-1之间的编码
将各种标签分配一个可数的连续编号:
> from sklearn import preprocessing > le = preprocessing.LabelEncoder() > le.fit([1, 2, 2, 6]) LabelEncoder() > le.classes_ array([1, 2, 6]) > le.transform([1, 1, 2, 6]) # Transform Categories Into Integers array([0, 0, 1, 2], dtype=int64) > le.inverse_transform([0, 0, 1, 2]) # Transform Integers Into Categories 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"]) # Transform Categories Into Integers array([2, 2, 1], dtype=int64) > list(le.inverse_transform([2, 2, 1])) #Transform Integers Into Categories ['tokyo', 'tokyo', 'paris']
将DataFrame中的所有ID标签转换成连续编号:
from sklearn.preprocessing import LabelEncoder import numpy as np import pandas as pd df=pd.read_csv('testdata.csv',sep='|',header=None)
0 1 2 3 4 5 0 37 52 55 50 38 54 1 17 32 20 9 6 48 2 28 10 56 51 45 16 3 27 49 41 30 53 19 4 44 29 8 1 46 13 5 11 26 21 14 7 33 6 0 39 22 33 35 43 7 18 15 47 5 25 34 8 23 2 4 9 3 31 9 12 57 36 40 42 24
le = LabelEncoder() le.fit(np.unique(df.values)) df.apply(le.transform)
0 1 2 3 4 5 0 37 52 55 50 38 54 1 17 32 20 9 6 48 2 28 10 56 51 45 16 3 27 49 41 30 53 19 4 44 29 8 1 46 13 5 11 26 21 14 7 33 6 0 39 22 33 35 43 7 18 15 47 5 25 34 8 23 2 4 9 3 31 9 12 57 36 40 42 24
将DataFrame中的每一行ID标签分别转换成连续编号:
import pandas as pd from sklearn.preprocessing import LabelEncoder from sklearn.pipeline import Pipeline class MultiColumnLabelEncoder: def __init__(self,columns = None): self.columns = columns # array of column names to encode def fit(self,X,y=None): return self # not relevant here def transform(self,X): ''' Transforms columns of X specified in self.columns using LabelEncoder(). If no columns specified, transforms all columns in X. ''' output = X.copy() if self.columns is not None: for col in self.columns: output[col] = LabelEncoder().fit_transform(output[col]) else: for colname,col in output.iteritems(): output[colname] = LabelEncoder().fit_transform(col) return output def fit_transform(self,X,y=None): return self.fit(X,y).transform(X)
MultiColumnLabelEncoder(columns = [0, 1, 2, 3, 4, 5]).fit_transform(df)
或者
df.apply(LabelEncoder().fit_transform)
0 1 2 3 4 5 0 8 8 8 7 5 9 1 3 5 2 2 1 8 2 7 1 9 8 7 1 3 6 7 6 4 9 2 4 9 4 1 0 8 0 5 1 3 3 3 2 5 6 0 6 4 5 4 7 7 4 2 7 1 3 6 8 5 0 0 2 0 4 9 2 9 5 6 6 3
# Create some toy data in a Pandas dataframe fruit_data = pd.DataFrame({ 'fruit': ['apple','orange','pear','orange'], 'color': ['red','orange','green','green'], 'weight': [5,6,3,4] })
color fruit weight 0 red apple 5 1 orange orange 6 2 green pear 3 3 green orange 4
MultiColumnLabelEncoder(columns = ['fruit','color']).fit_transform(fruit_data)
或者
fruit_data[['fruit','color']]=fruit_data[['fruit','color']].apply(LabelEncoder().fit_transform)
color fruit weight 0 2 0 5 1 1 1 6 2 0 2 3 3 0 1 4
以上这篇使用sklearn之LabelEncoder将Label标准化的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
暂无“使用sklearn之LabelEncoder将Label标准化的方法”评论...
稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!
昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。
这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。
而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?
更新动态
2024年11月26日
2024年11月26日
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]