利用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的Django框架生成PDF文件的教程
Jul 22 Python
Python字符串切片操作知识详解
Mar 28 Python
Python内建函数之raw_input()与input()代码解析
Oct 26 Python
python机器学习理论与实战(六)支持向量机
Jan 19 Python
用Python shell简化开发
Aug 08 Python
python实现飞机大战游戏
Oct 26 Python
wxPython实现分隔窗口
Nov 19 Python
opencv3/Python 稠密光流calcOpticalFlowFarneback详解
Dec 11 Python
Python可以实现栈的结构吗
May 27 Python
Python切片列表字符串如何实现切换
Aug 06 Python
Django框架实现在线考试系统的示例代码
Nov 30 Python
python实现求纯色彩图像的边框
Apr 08 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的一个完整SMTP类(解决邮件服务器需要验证时的问题)
2006/10/09 PHP
PHP5.5和之前的版本empty函数的不同之处
2014/06/13 PHP
PHP实现时间比较和时间差计算的方法示例
2017/07/24 PHP
yii2 开发api接口时优雅的处理全局异常的方法
2019/05/14 PHP
jquery 定位input元素的几种方法小结
2013/07/28 Javascript
jquery教程ajax请求json数据示例
2014/01/13 Javascript
jQuery实现返回顶部功能
2016/02/23 Javascript
JavaScript函数柯里化详解
2016/04/29 Javascript
Jquery实现遮罩层的简单实例(就是弹出DIV周围都灰色不能操作)
2016/07/14 Javascript
JS实现获取当前URL和来源URL的方法
2016/08/24 Javascript
基于JavaScript实现随机颜色输入框
2016/12/10 Javascript
jquery实现异步加载图片(懒加载图片一种方式)
2017/04/24 jQuery
node.js平台下利用cookie实现记住密码登陆(Express+Ejs+Mysql)
2017/04/26 Javascript
vue事件修饰符和按键修饰符用法总结
2017/07/25 Javascript
原生JS+Canvas实现五子棋游戏
2020/05/28 Javascript
JavaScript中 ES6变量的结构赋值
2018/07/10 Javascript
NodeJS实现自定义流的方法
2018/08/01 NodeJs
[07:09]DOTA2-DPC中国联赛 正赛 Ehome vs Elephant 选手采访
2021/03/11 DOTA
python通过openpyxl生成Excel文件的方法
2015/05/12 Python
Python数据集切分实例
2018/12/08 Python
python3实现钉钉消息推送的方法示例
2019/03/14 Python
一个可以套路别人的python小程序实例代码
2019/04/09 Python
Laravel框架表单验证格式化输出的方法
2019/09/25 Python
Django启动时找不到mysqlclient问题解决方案
2020/11/11 Python
总务岗位职责
2013/11/19 职场文书
大学生职业生涯设计书
2014/01/02 职场文书
公司年会抽奖活动主持词
2014/03/31 职场文书
大一新生期末自我评价
2014/09/12 职场文书
党员个人对照检查材料思想汇报
2014/09/16 职场文书
民政局副局长民主生活会个人对照检查材料
2014/09/19 职场文书
2014年公务员退休工资改革方案
2014/10/01 职场文书
党的群众路线教育实践活动个人对照检查材料(校长)
2014/11/05 职场文书
中标通知书范本
2015/04/17 职场文书
Spring Boot DevTools 全局配置学习指南
2022/03/31 Java/Android
国际最新研究在陨石中发现DNA主要成分 或由陨石带来地球
2022/04/29 数码科技
Python开发简易五子棋小游戏
2022/05/02 Python