利用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 相关文章推荐
pycharm 使用心得(三)Hello world!
Jun 05 Python
Python实现求两个csv文件交集的方法
Sep 06 Python
python购物车程序简单代码
Apr 18 Python
python获取文件路径、文件名、后缀名的实例
Apr 23 Python
Python代码缩进和测试模块示例详解
May 07 Python
对python中xlsx,csv以及json文件的相互转化方法详解
Dec 25 Python
python面向对象 反射原理解析
Aug 12 Python
python实现文件批量编码转换及注意事项
Oct 14 Python
kafka-python 获取topic lag值方式
Dec 23 Python
django xadmin中form_layout添加字段显示方式
Mar 30 Python
Django values()和value_list()的使用
Mar 31 Python
详解python变量与数据类型
Aug 25 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
php 中include()与require()的对比
2006/10/09 PHP
PHP session有效期问题
2009/04/26 PHP
PHP中通过HTTP_USER_AGENT判断是否为手机移动终端的函数代码
2013/02/14 PHP
用php实现选择排序的解决方法
2013/05/04 PHP
PHP mail()函数使用及配置方法
2014/01/14 PHP
PHP验证信用卡卡号是否正确函数
2015/05/27 PHP
PHP的AES加密算法完整实例
2016/07/20 PHP
PHP的消息通信机制测试实例
2016/11/10 PHP
PHP实现简单的计算器
2020/08/28 PHP
一个小型js框架myJSFrame附API使用帮助
2008/06/28 Javascript
JS继承--原型链继承和类式继承
2013/04/08 Javascript
jquery取消选择select下拉框示例代码
2014/02/22 Javascript
用js屏蔽被http劫持的浮动广告实现方法
2017/08/10 Javascript
jQuery事件对象的属性和方法详解
2017/09/09 jQuery
node实现分片下载的示例代码
2018/10/17 Javascript
微信小程序wx.navigateTo中events属性实现页面间通信传值,数据同步
2019/07/13 Javascript
vue 框架下自定义滚动条(easyscroll)实现方法
2019/08/29 Javascript
详解mpvue开发微信小程序基础知识
2019/09/23 Javascript
Openlayers显示地理位置坐标的方法
2020/09/28 Javascript
python复制与引用用法分析
2015/04/08 Python
在Python的web框架中编写创建日志的程序的教程
2015/04/30 Python
pycharm 激活码及使用方式的详细教程
2020/05/12 Python
10行Python代码实现Web自动化管控的示例代码
2020/08/14 Python
Python 无限级分类树状结构生成算法的实现
2021/01/21 Python
Python制作运行进度条的实现效果(代码运行不无聊)
2021/02/24 Python
纯css3实现的竖形无限级导航
2014/12/10 HTML / CSS
澳大利亚足球鞋和服装购物网站:Ultra Football
2018/10/11 全球购物
公共汽车、火车和飞机票的通用在线预订和销售平台:INFOBUS
2019/11/30 全球购物
super()与this()的区别
2016/01/17 面试题
Java面试题:为什么要用Java
2012/05/11 面试题
化工专业应届生求职信
2013/11/08 职场文书
广告艺术设计专业自荐书
2014/07/08 职场文书
公司承诺函范文
2015/01/21 职场文书
家长对学校的意见和建议
2015/06/03 职场文书
如何利用Python实现n*n螺旋矩阵
2022/01/18 Python
MySQL 数据库 增删查改、克隆、外键 等操作
2022/05/11 MySQL