python数据预处理之将类别数据转换为数值的方法


Posted in Python onJuly 05, 2017

在进行python数据分析的时候,首先要进行数据预处理。

有时候不得不处理一些非数值类别的数据,嗯, 今天要说的就是面对这些数据该如何处理。

目前了解到的大概有三种方法:

1,通过LabelEncoder来进行快速的转换;

2,通过mapping方式,将类别映射为数值。不过这种方法适用范围有限;

3,通过get_dummies方法来转换。

import pandas as pd
from io import StringIO

csv_data = '''A,B,C,D
1,2,3,4
5,6,,8
0,11,12,'''

df = pd.read_csv(StringIO(csv_data))
print(df)
#统计为空的数目
print(df.isnull().sum())
print(df.values)

#丢弃空的
print(df.dropna())
print('after', df)
from sklearn.preprocessing import Imputer
# axis=0 列  axis = 1 行
imr = Imputer(missing_values='NaN', strategy='mean', axis=0)
imr.fit(df) # fit 构建得到数据
imputed_data = imr.transform(df.values) #transform 将数据进行填充
print(imputed_data)

df = pd.DataFrame([['green', 'M', 10.1, 'class1'],
          ['red', 'L', 13.5, 'class2'],
          ['blue', 'XL', 15.3, 'class1']])
df.columns =['color', 'size', 'price', 'classlabel']
print(df)

size_mapping = {'XL':3, 'L':2, 'M':1}
df['size'] = df['size'].map(size_mapping)
print(df)

## 遍历Series
for idx, label in enumerate(df['classlabel']):
  print(idx, label)

#1, 利用LabelEncoder类快速编码,但此时对color并不适合,
#看起来,好像是有大小的
from sklearn.preprocessing import LabelEncoder
class_le = LabelEncoder()
color_le = LabelEncoder()
df['classlabel'] = class_le.fit_transform(df['classlabel'].values)
#df['color'] = color_le.fit_transform(df['color'].values)
print(df)

#2, 映射字典将类标转换为整数
import numpy as np
class_mapping = {label: idx for idx, label in enumerate(np.unique(df['classlabel']))}
df['classlabel'] = df['classlabel'].map(class_mapping)
print('2,', df)


#3,处理1不适用的
#利用创建一个新的虚拟特征
from sklearn.preprocessing import OneHotEncoder
pf = pd.get_dummies(df[['color']])
df = pd.concat([df, pf], axis=1)
df.drop(['color'], axis=1, inplace=True)
print(df)

以上这篇python数据预处理之将类别数据转换为数值的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python发送arp欺骗攻击代码分析
Jan 16 Python
Python遍历目录并批量更换文件名和目录名的方法
Sep 19 Python
使用Python对SQLite数据库操作
Apr 06 Python
对变量赋值的理解--Pyton中让两个值互换的实现方法
Nov 29 Python
Python实现判断一行代码是否为注释的方法
May 23 Python
python去掉 unicode 字符串前面的u方法
Oct 21 Python
python使用udp实现聊天器功能
Dec 10 Python
python使用pipeline批量读写redis的方法
Feb 18 Python
pytorch中nn.Conv1d的用法详解
Dec 31 Python
Tensorflow进行多维矩阵的拆分与拼接实例
Feb 07 Python
基于Python采集爬取微信公众号历史数据
Nov 27 Python
Python scrapy爬取起点中文网小说榜单
Jun 13 Python
利用Python3分析sitemap.xml并抓取导出全站链接详解
Jul 04 #Python
在django中使用自定义标签实现分页功能
Jul 04 #Python
详解django中自定义标签和过滤器
Jul 03 #Python
pygame实现弹力球及其变速效果
Jul 03 #Python
[原创]使用豆瓣提供的国内pypi源
Jul 02 #Python
python中安装Scrapy模块依赖包汇总
Jul 02 #Python
Python使用filetype精确判断文件类型
Jul 02 #Python
You might like
PHP动态变静态原理
2006/11/25 PHP
PHP给前端返回一个JSON对象的实例讲解
2018/05/31 PHP
jQuery 入门级学习笔记及源码
2010/01/22 Javascript
利用js实现选项卡的特别效果的实例
2013/03/03 Javascript
ExtJS自定义主题(theme)样式详解
2013/11/18 Javascript
javaScript中的this示例学习详解及工作原理
2014/01/13 Javascript
setTimeout()递归调用不加引号出错的解决方法
2014/09/05 Javascript
Linux下编译安装php libevent扩展实例
2015/02/14 Javascript
jQuery实现首页图片淡入淡出效果的方法
2015/06/10 Javascript
在ASP.NET MVC项目中使用RequireJS库的用法示例
2016/02/15 Javascript
简单谈谈javascript中this的隐式绑定
2016/02/22 Javascript
JS使用eval()动态创建变量的方法
2016/06/03 Javascript
JavaScript实现自动跳转文本功能
2017/05/25 Javascript
浅谈vue实现数据监听的函数 Object.defineProperty
2017/06/08 Javascript
解决淘宝cnpm 安装后cnpm不是内部或外部命令的问题
2018/05/17 Javascript
对vue下点击事件传参和不传参的区别详解
2018/09/15 Javascript
详解vue 动态加载并注册组件且通过 render动态创建该组件
2019/05/30 Javascript
[01:14:19]NAVI vs Mineski 2019国际邀请赛淘汰赛 败者组BO1 8.20.mp4
2020/07/19 DOTA
Python struct.unpack
2008/09/06 Python
让python json encode datetime类型
2010/12/28 Python
Python使用scrapy采集数据过程中放回下载过大页面的方法
2015/04/08 Python
windows下安装Python的XlsxWriter模块方法
2018/05/03 Python
pyqt 实现在Widgets中显示图片和文字的方法
2019/06/13 Python
使用python打印十行杨辉三角过程详解
2019/07/10 Python
对Python中 \r, \n, \r\n的彻底理解
2020/03/06 Python
Python3开发实例之非关系型图数据库Neo4j安装方法及Python3连接操作Neo4j方法实例
2020/03/18 Python
python 抓取知乎指定回答下视频的方法
2020/07/09 Python
使用pandas实现筛选出指定列值所对应的行
2020/12/13 Python
介绍一下SQL注入攻击的种类和防范手段
2012/02/18 面试题
Oracle中delete,truncate和drop的区别
2016/05/05 面试题
产品工艺师的岗位职责
2013/11/15 职场文书
总经理岗位职责描述
2014/02/08 职场文书
购房协议书范本
2014/04/11 职场文书
个人承诺书格式
2014/06/03 职场文书
2014流动人口计划生育工作总结
2014/12/20 职场文书
公安纪律作风整顿心得体会
2016/01/23 职场文书