利用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之wxPython应用实例
Sep 28 Python
Python中super的用法实例
May 28 Python
python计算文本文件行数的方法
Jul 06 Python
浅谈Python中的闭包
Jul 08 Python
Python实现截屏的函数
Jul 25 Python
[原创]使用豆瓣提供的国内pypi源
Jul 02 Python
Python cv2 图像自适应灰度直方图均衡化处理方法
Dec 07 Python
浅谈Python采集网页时正则表达式匹配换行符的问题
Dec 20 Python
PyTorch实现更新部分网络,其他不更新
Dec 31 Python
使用celery和Django处理异步任务的流程分析
Feb 19 Python
python中封包建立过程实例
Feb 18 Python
python井字棋游戏实现人机对战
Apr 28 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实现截取指定长度
2013/08/06 PHP
yii权限控制的方法(三种方法)
2015/12/28 PHP
使用phpQuery获取数组的实例
2017/03/13 PHP
php+Ajax无刷新验证用户名操作实例详解
2019/03/04 PHP
Laravel 微信小程序后端搭建步骤详解
2019/11/26 PHP
js两行代码按指定格式输出日期时间
2011/10/21 Javascript
js 实现日期灵活格式化的小例子
2013/07/14 Javascript
js出生日期 年月日级联菜单示例代码
2014/01/10 Javascript
js左右弹性滚动对联广告代码分享
2014/02/19 Javascript
javascript异步编程代码书写规范Promise学习笔记
2015/02/11 Javascript
jquery获取节点名称
2015/04/26 Javascript
javascript常用经典算法实例详解
2015/11/25 Javascript
js检测iframe是否加载完成的方法
2015/11/26 Javascript
详解JavaScript的流程控制语句
2015/11/30 Javascript
谈一谈javascript中继承的多种方式
2016/02/19 Javascript
AngularJS基础 ng-non-bindable 指令详细介绍
2016/08/02 Javascript
微信小程序 http请求详细介绍
2016/10/09 Javascript
node.js实现复制文本到剪切板的功能
2017/01/23 Javascript
AngularJS 异步解决实现方法
2017/06/12 Javascript
[05:05]给小松五分钟系列 第二期介绍为什么打DOTA2
2014/07/02 DOTA
Saltstack快速入门简单汇总
2016/03/01 Python
TensorFlow在MAC环境下的安装及环境搭建
2017/11/14 Python
Python实现的桶排序算法示例
2017/11/29 Python
django项目搭建与Session使用详解
2018/10/10 Python
Python实现分段线性插值
2018/12/17 Python
PyCharm的设置方法和第一个Python程序的建立
2019/01/16 Python
python实现一个函数版的名片管理系统过程解析
2019/08/27 Python
python入门之井字棋小游戏
2020/03/05 Python
浅谈对python中if、elif、else的误解
2020/08/20 Python
python opencv图像处理(素描、怀旧、光照、流年、滤镜 原理及实现)
2020/12/10 Python
HTML5中通过li-canvas轻松实现单图、多图、圆角图绘制,单行文字、多行文字等
2018/11/30 HTML / CSS
嘻哈珠宝品牌:KRKC&CO
2020/10/19 全球购物
经理职责范文
2013/11/08 职场文书
2014年度考核工作总结
2014/12/24 职场文书
工作经历证明范本
2015/06/15 职场文书
十大经典日本动漫排行榜 海贼王第三,犬夜叉仅第八
2022/03/18 日漫