利用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 ORM框架SQLAlchemy学习笔记之关系映射实例
Jun 10 Python
用Python代码来解图片迷宫的方法整理
Apr 02 Python
python正则表达式re之compile函数解析
Oct 25 Python
python并发编程之线程实例解析
Dec 27 Python
详解用python写一个抽奖程序
May 10 Python
python把ipynb文件转换成pdf文件过程详解
Jul 09 Python
Django 解决开发自定义抛出异常的问题
May 21 Python
win10安装python3.6的常见问题
Jul 01 Python
如何利用python进行时间序列分析
Aug 04 Python
Python xmltodict模块安装及代码实例
Oct 05 Python
如何利用pycharm进行代码更新比较
Nov 04 Python
python中@property的作用和getter setter的解释
Dec 22 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&MYSQL留言板源码
2020/07/19 PHP
PHP 用数组降低程序的时间复杂度
2009/12/04 PHP
解析PHPExcel使用的常用说明以及把PHPExcel整合进CI框架的介绍
2013/06/24 PHP
ecshop后台编辑器替换成ueditor编辑器
2015/03/03 PHP
thinkPHP中create方法与令牌验证实例浅析
2015/12/08 PHP
让你的PHP7更快之Hugepage用法分析
2016/05/31 PHP
PHP登录(ajax提交数据和后台校验)实例分享
2016/12/29 PHP
Jquery 点击按钮显示和隐藏层的代码
2011/07/25 Javascript
jQuery 插件开发指南
2014/11/14 Javascript
AngularJS Ajax详解及示例代码
2016/08/17 Javascript
jquery easyUI中ajax异步校验用户名
2016/08/19 Javascript
C#微信小程序服务端获取用户解密信息实例代码
2017/03/10 Javascript
ES6新特性之数组、Math和扩展操作符用法示例
2017/04/01 Javascript
js图片上传的封装代码
2017/08/01 Javascript
Python的Django框架中自定义模版标签的示例
2015/07/20 Python
用python写一个windows下的定时关机脚本(推荐)
2017/03/21 Python
python使用KNN算法识别手写数字
2019/04/25 Python
python获取点击的坐标画图形的方法
2019/07/09 Python
Python递归实现打印多重列表代码
2020/02/27 Python
python安装及变量名介绍详解
2020/12/12 Python
Ellos丹麦:时尚和服装在线
2016/09/19 全球购物
FILA斐乐中国官方商城:意大利运动品牌
2017/01/25 全球购物
怎样客观的做好自我评价
2013/12/28 职场文书
成人继续教育实施方案
2014/03/01 职场文书
二年级小学生评语
2014/04/21 职场文书
城管大队整治方案
2014/05/06 职场文书
村级个人对照检查材料
2014/08/22 职场文书
创先争优活动承诺书
2014/08/30 职场文书
领导干部作风建设自查报告
2014/10/23 职场文书
2014收银员工作总结范文
2014/12/16 职场文书
golang中切片copy复制和等号复制的区别介绍
2021/04/27 Golang
elasticSearch-api的具体操作步骤讲解
2021/06/28 Java/Android
nodejs利用readline提示输入内容实例代码
2021/07/15 NodeJs
JavaScript分页组件使用方法详解
2021/07/26 Javascript
Go语言的协程上下文的几个方法和用法
2022/04/11 Golang
react中useState使用:如何实现在当前表格直接更改数据
2022/08/05 Javascript