handle non numerical data
举个例子,将性别属性男女转换成0-1,精通ML的小老弟们可以略过本文~~,
这里不考虑稀疏向量的使用,仅提供一些思路。本来想直接利用pandas的DataFrame.iloc加上for循环直接转换,但试过一遍之后,原数据并有改变。。。。蛋疼写了一个比较 菜的函数,如下。
# 非数值列处理函数 def handel_non_numerical_data(df,name): #----------------name是需要处理的列名称(str),暂不考虑列表 nrows = len(df[name]) #----------------数据集的行数 old_col = df.columns.tolist() #----------------初始的列名集合 name_index = old_col.index(name) #---------要处理的列的在数据集中的索引值 name_data = df[name].values.tolist()#-----------将要处理烦人列复制成一个列表 df.drop([name],axis =1,inplace =True) unique_kinds = set(name_data) convert_dict = {}; x = 0 #构造对应种类数值转化字典 for i in unique_kinds: convert_dict[i] = x x += 1 def convert(val): return convert_dict[val] name_data = list(map(convert,name_data))#利用map函数直接迭代转化 new_col = df.columns.tolist() new_col.insert(name_index,name) df.reindex(columns = new_col) #----------------重构数据的列 df[name] = name_data
跑了一遍没有出错,注意这只是baseline…,如果对数值有要求的话,需要自行改动
原本是想直接用youtube上sentdex老哥ml35期视频里的代码的,但发现了几个较为严重的bug,而且总是运行出错 ,如下
def handle_non_numerical_data(df): columns = df.columns.values for column in columns: text_digit_vals = {} def convert_to_int(val): return text_digit_vals[val] if df[column].dtype != np.int64 and df[column].dtype != np.float64: column_content = df[column].values.tolist() unique_elements = set(column_content) print(unique_elements) x =0 for unique in unique_elements: if unique not in text_digit_vals: text_digit_vals[unique] = x x+=1 df[column] = list(map(convert_to_int,df[column]))
可见,非常暴力,注意到他的if条件,有的数据集中会出现字母数字组合的情况【会出现dtype=object的情况】,set之后种类会草鸡多…,这样的话数值转换也就失去了意义【当然,如果你的样本量是亿级的,几千几百个种类无所谓我也无fuck说,这种情况我认为必须使用稀疏向量了】,另外这个代码一直报错,不知道为什么,有兴趣的老哥可以复制跑一下帮我解答一下。。。
---------------------------2019-08-21分割:
https://www.kaggle.com/nroman/recursive-feature-elimination
LabelEncoder方法
from sklearn.preprocessing import LabelEncoder
注:tqdm是进度条库,不需要关注。另外没有去看这个接口的源码,应该也是最简单的one-hot
以上这篇利用pandas将非数值数据转换成数值的方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
pandas,非数值,数据,数值
稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!
昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。
这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。
而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?
更新日志
- 小骆驼-《草原狼2(蓝光CD)》[原抓WAV+CUE]
- 群星《欢迎来到我身边 电影原声专辑》[320K/MP3][105.02MB]
- 群星《欢迎来到我身边 电影原声专辑》[FLAC/分轨][480.9MB]
- 雷婷《梦里蓝天HQⅡ》 2023头版限量编号低速原抓[WAV+CUE][463M]
- 群星《2024好听新歌42》AI调整音效【WAV分轨】
- 王思雨-《思念陪着鸿雁飞》WAV
- 王思雨《喜马拉雅HQ》头版限量编号[WAV+CUE]
- 李健《无时无刻》[WAV+CUE][590M]
- 陈奕迅《酝酿》[WAV分轨][502M]
- 卓依婷《化蝶》2CD[WAV+CUE][1.1G]
- 群星《吉他王(黑胶CD)》[WAV+CUE]
- 齐秦《穿乐(穿越)》[WAV+CUE]
- 发烧珍品《数位CD音响测试-动向效果(九)》【WAV+CUE】
- 邝美云《邝美云精装歌集》[DSF][1.6G]
- 吕方《爱一回伤一回》[WAV+CUE][454M]