利用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处理html转义字符的方法详解
Jul 01 Python
用Python解决计数原理问题的方法
Aug 04 Python
Ubuntu 16.04 LTS中源码安装Python 3.6.0的方法教程
Dec 27 Python
python表格存取的方法
Mar 07 Python
django 单表操作实例详解
Jul 30 Python
淘宝秒杀python脚本 扫码登录版
Sep 19 Python
python GUI库图形界面开发之PyQt5开发环境配置与基础使用
Feb 25 Python
Python importlib动态导入模块实现代码
Apr 16 Python
Django数据结果集序列化并展示实现过程
Apr 22 Python
Python分析微信好友性别比例和省份城市分布比例的方法示例【基于itchat模块】
May 29 Python
Python函数调用追踪实现代码
Nov 27 Python
python 高阶函数简单介绍
Feb 19 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
PHP4和PHP5共存于一系统
2006/11/17 PHP
thinkPHP3.2简单实现文件上传的方法
2016/05/16 PHP
浅谈php fopen下载远程文件的函数
2016/11/18 PHP
Laravel中如何增加自定义全局函数详解
2017/05/09 PHP
PHP实现微信退款的方法示例
2019/03/26 PHP
javascript 导出数据到Excel(处理table中的元素)
2009/12/18 Javascript
Jquery 插件学习实例1 插件制作说明与tableUI优化
2010/04/02 Javascript
利用div+jquery自定义滚动条样式的2种方法
2013/07/18 Javascript
struts2+jquery组合验证注册用户是否存在
2014/04/30 Javascript
JavaScript使用concat连接数组的方法
2015/04/06 Javascript
jQuery图片左右滚动代码 有左右按钮实例
2016/06/20 Javascript
JavaScript从0开始构思表情插件
2016/07/26 Javascript
JS简单实现禁止访问某个页面的方法
2016/09/13 Javascript
Bootstrap下拉菜单Dropdowns的实现代码
2017/03/17 Javascript
JavaScript实现隐藏省略文字效果的方法
2017/04/27 Javascript
JavaScript转换数据库DateTime字段类型方法
2017/06/27 Javascript
JS基于for语句编写的九九乘法表示例
2018/01/04 Javascript
基于vue中keep-alive缓存问题的解决方法
2018/09/21 Javascript
JavaScript数值类型知识汇总
2019/11/17 Javascript
node.js中 redis 的安装和基本操作示例
2020/02/10 Javascript
[52:40]完美世界DOTA2联赛PWL S2 Magma vs GXR 第一场 11.29
2020/12/02 DOTA
Python实现多线程抓取妹子图
2015/08/08 Python
python结合shell查询google关键词排名的实现代码
2016/02/27 Python
python字符串的方法与操作大全
2018/01/30 Python
Python动态导入模块的方法实例分析
2018/06/28 Python
Python实现数据结构线性链表(单链表)算法示例
2019/05/04 Python
Django项目创建到启动详解(最全最详细)
2019/09/07 Python
python爬虫scrapy基于CrawlSpider类的全站数据爬取示例解析
2021/02/20 Python
护士自我鉴定
2013/10/23 职场文书
培训主管的岗位职责
2013/11/23 职场文书
2014年财务工作总结范文
2014/11/11 职场文书
中学生自我评价范文
2015/03/03 职场文书
高一化学教学反思
2016/02/22 职场文书
Python还能这么玩之用Python做个小游戏的外挂
2021/06/04 Python
MySQL系列之十 MySQL事务隔离实现并发控制
2021/07/02 MySQL
SQL注入篇学习之盲注/宽字节注入
2022/03/03 MySQL