利用pandas将非数值数据转换成数值的方式


Posted in Python onDecember 18, 2019

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

利用pandas将非数值数据转换成数值的方式

注:tqdm是进度条库,不需要关注。另外没有去看这个接口的源码,应该也是最简单的one-hot

以上这篇利用pandas将非数值数据转换成数值的方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
使用Python抓取模板之家的CSS模板
Mar 16 Python
Python实现字符串格式化的方法小结
Feb 20 Python
python django事务transaction源码分析详解
Mar 17 Python
Windows下安装python2和python3多版本教程
Mar 30 Python
基于使用paramiko执行远程linux主机命令(详解)
Oct 16 Python
基于python log取对数详解
Jun 08 Python
Python Pillow Image Invert
Jan 22 Python
python opencv图片编码为h264文件的实例
Dec 12 Python
Python通过Pillow实现图片对比
Apr 29 Python
使用python-Jenkins批量创建及修改jobs操作
May 12 Python
python语音识别指南终极版(有这一篇足矣)
Sep 09 Python
python操作toml文件的示例代码
Nov 27 Python
python 浅谈serial与stm32通信的编码问题
Dec 18 #Python
基于numpy中的expand_dims函数用法
Dec 18 #Python
Python.append()与Python.expand()用法详解
Dec 18 #Python
python getopt模块使用实例解析
Dec 18 #Python
pytorch制作自己的LMDB数据操作示例
Dec 18 #Python
Python Gluon参数和模块命名操作教程
Dec 18 #Python
python turtle 绘制太极图的实例
Dec 18 #Python
You might like
Smarty安装配置方法
2008/04/10 PHP
全世界最小的php网页木马一枚 附PHP木马的防范方法
2009/10/09 PHP
PHP文章采集URL补全函数(FormatUrl)
2012/08/02 PHP
php多个字符串替换成同一个的解决方法
2013/06/18 PHP
解析zend studio中直接导入svn中的项目的方法步骤
2013/06/21 PHP
php5.2以下版本无json_decode函数的解决方法
2014/05/25 PHP
php中FTP函数ftp_connect、ftp_login与ftp_chmod用法
2014/11/18 PHP
Yii框架中jquery表单验证插件用法示例
2016/10/18 PHP
动态调用CSS文件的JS代码
2010/07/29 Javascript
javascript中使用正则计算中文长度的例子
2014/04/29 Javascript
Javascript实现飞动广告效果的方法
2015/05/25 Javascript
Jquery全屏相册插件zoomvisualizer具有调节放大与缩小功能
2015/11/02 Javascript
jQuery实现隔行变色的方法分析(对比原生JS)
2016/11/18 Javascript
jquery插件treegrid树状表格的使用方法详解(.Net平台)
2017/01/03 Javascript
JavaScript数组_动力节点Java学院整理
2017/06/26 Javascript
vue2.x 父组件监听子组件事件并传回信息的方法
2017/07/17 Javascript
Nodejs实现文件上传的示例代码
2017/09/26 NodeJs
nodejs中用npm初始化来创建package.json的实例讲解
2018/10/10 NodeJs
Nginx设置为Node.js的前端服务器方法总结
2019/03/27 Javascript
Antd表格滚动 宽度自适应 不换行的实例
2020/10/27 Javascript
微信小程序实现天气预报功能(附源码)
2020/12/10 Javascript
小程序实现列表倒计时功能
2021/01/29 Javascript
Python内置模块hashlib、hmac与uuid用法分析
2018/02/12 Python
Python中pyecharts安装及安装失败的解决方法
2020/02/18 Python
Django 再谈一谈json序列化
2020/03/16 Python
Python可以实现栈的结构吗
2020/05/27 Python
HTML5表单验证特性(知识点小结)
2020/03/10 HTML / CSS
美国专注于健康商品的网站:eVitamins
2017/01/23 全球购物
木工主管岗位职责
2013/12/08 职场文书
80后职场人的职业生涯规划
2014/03/08 职场文书
投标诚信承诺书
2014/05/26 职场文书
放飞理想演讲稿
2014/09/09 职场文书
办公室主任四风问题对照检查材料思想汇报
2014/09/28 职场文书
2014年节能降耗工作总结
2014/12/11 职场文书
2014年小学美术工作总结
2014/12/20 职场文书
Redis性能监控的实现
2021/07/09 Redis