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在图片中添加文字的两种方法
Apr 29 Python
一道python走迷宫算法题
Jan 22 Python
在cmd中运行.py文件: python的操作步骤
May 12 Python
spark: RDD与DataFrame之间的相互转换方法
Jun 07 Python
Python3.6日志Logging模块简单用法示例
Jun 14 Python
Python使用pyshp库读取shapefile信息的方法
Dec 29 Python
python pcm音频添加头转成Wav格式文件的方法
Jan 09 Python
pygame编写音乐播放器的实现代码示例
Nov 19 Python
Python中包的用法及安装
Feb 11 Python
python 自动识别并连接串口的实现
Jan 19 Python
解决Python字典查找报Keyerror的问题
May 26 Python
python 经纬度求两点距离、三点面积操作
Jun 03 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
source.php查看源文件
2006/12/09 PHP
ajax在joomla中的原生态应用代码
2012/07/19 PHP
Drupal7 form表单二次开发要点与实例
2014/03/02 PHP
php中get_meta_tags()、CURL与user-agent用法分析
2014/12/16 PHP
PHP获取文件相对路径的方法
2015/02/26 PHP
phpcms手机内容页面添加上一篇和下一篇
2015/06/05 PHP
PHP实现动态web服务器方法
2015/07/29 PHP
php实现的一段简单概率相关代码
2016/05/30 PHP
浅谈PHP中的数据传输CURL
2016/09/06 PHP
php array_walk 对数组中的每个元素应用用户自定义函数详解
2016/11/18 PHP
Javascript 面向对象特性
2009/12/28 Javascript
浅谈JavaScript异常处理语句
2015/06/26 Javascript
深入分析jQuery的ready函数是如何工作的(工作原理)
2015/12/17 Javascript
7个jQuery最佳实践
2016/01/12 Javascript
thinkphp标签实现bootsrtap轮播carousel实例代码
2017/02/19 Javascript
Angularjs中使用轮播图指令swiper
2017/05/30 Javascript
angularjs实现简单的购物车功能
2017/09/21 Javascript
浅谈vue项目利用Hbuilder打包成APP流程,以及遇到的坑
2020/09/12 Javascript
JS数据类型分类及常用判断方法
2020/11/19 Javascript
python采用requests库模拟登录和抓取数据的简单示例
2014/07/05 Python
使用Python发送各种形式的邮件的方法汇总
2015/11/09 Python
python 统计数组中元素出现次数并进行排序的实例
2018/07/02 Python
Python进阶之@property动态属性的实现
2019/04/01 Python
详解如何减少python内存的消耗
2019/08/09 Python
学Python 3的理由和必要性
2019/11/19 Python
使用sublime text3搭建Python编辑环境的实现
2021/01/12 Python
美国球鞋寄卖网站:Stadium Goods
2018/05/09 全球购物
Tirendo比利时:在线购买轮胎
2018/10/22 全球购物
G-Form护具官方网站:美国运动保护装备
2019/09/04 全球购物
中学生打架检讨书
2014/02/10 职场文书
国贸专业毕业求职信
2014/06/11 职场文书
副检察长四风问题对照检查材料思想汇报
2014/10/07 职场文书
故宫英文导游词
2015/01/31 职场文书
涨价通知怎么写
2015/04/23 职场文书
【海涛解说】史上最给力比赛,挑战DOTA极限
2022/04/01 DOTA
MySQL GTID复制的具体使用
2022/05/20 MySQL