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 itertools模块详解
May 09 Python
初步认识Python中的列表与位运算符
Oct 12 Python
Python实现通过文件路径获取文件hash值的方法
Apr 29 Python
python批量修改图片后缀的方法(png到jpg)
Oct 25 Python
python爬虫 爬取超清壁纸代码实例
Aug 16 Python
python itsdangerous模块的具体使用方法
Feb 17 Python
Python处理PDF与CDF实例
Feb 26 Python
django 实现手动存储文件到model的FileField
Mar 30 Python
python异常处理之try finally不报错的原因
May 18 Python
pytorch掉坑记录:model.eval的作用说明
Jun 23 Python
利用Python读取微信朋友圈的多种方法总结
Aug 23 Python
详解Golang如何实现支持随机删除元素的堆
Sep 23 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调用c接口无错版介绍
2014/03/11 PHP
PHP钩子实现方法解析
2019/05/21 PHP
Ucren Virtual Desktop V2.0
2006/11/07 Javascript
解决jquery的datepicker的本地化以及Today问题
2012/05/23 Javascript
javascript模块化是什么及其优缺点介绍
2013/09/02 Javascript
JavaScript中textRange对象使用方法小结
2015/03/24 Javascript
javascript中返回顶部按钮的实现
2015/05/05 Javascript
jquery判断至少有一个checkbox被选中的方法
2015/06/05 Javascript
谈谈JSON对象和字符串之间的相互转换JSON.stringify(obj)和JSON.parse(string)
2015/10/01 Javascript
js实现小窗口拖拽效果
2016/12/03 Javascript
angularjs ocLazyLoad分步加载js文件实例
2017/01/17 Javascript
详解基于webpack和vue.js搭建开发环境
2017/04/05 Javascript
简单的网页广告特效实例
2017/08/19 Javascript
Vue2.0实现组件数据的双向绑定问题
2018/03/06 Javascript
webpack4简单入门实例
2018/09/06 Javascript
vue2中引用及使用 better-scroll的方法详解
2018/11/15 Javascript
详解VScode编辑器vue环境搭建所遇问题解决方案
2019/04/26 Javascript
少女风vue组件库的制作全过程
2019/05/15 Javascript
判断js数据类型的函数实例详解
2019/05/23 Javascript
了解javascript中let和var及const关键字的区别
2019/05/24 Javascript
使用 Angular RouteReuseStrategy 缓存(路由)组件的实例代码
2019/11/01 Javascript
python 每天如何定时启动爬虫任务(实现方法分享)
2018/05/21 Python
python绘制多个曲线的折线图
2020/03/23 Python
在python中bool函数的取值方法
2018/11/01 Python
Python线上环境使用日志的及配置文件
2019/07/28 Python
解决pytorch多GPU训练保存的模型,在单GPU环境下加载出错问题
2020/06/23 Python
Python如何使用神经网络进行简单文本分类
2021/02/25 Python
HTML5 通过Vedio标签实现视频循环播放的示例代码
2020/08/05 HTML / CSS
加拿大领先的牛仔零售商:Bluenotes
2018/01/22 全球购物
北美女性服装零售连锁店:maurices
2019/06/12 全球购物
说一下Linux下有关用户和组管理的命令
2014/08/18 面试题
《世界多美呀》教学反思
2014/03/02 职场文书
四风批评与自我批评发言稿
2014/10/14 职场文书
大学生暑期社会实践证明范本
2014/10/24 职场文书
检讨书格式
2015/05/07 职场文书
Mysql中有关Datetime和Timestamp的使用总结
2021/12/06 MySQL