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中read()、readline()和readlines()三者间的区别和用法
Jul 30 Python
Python方法的延迟加载的示例代码
Dec 18 Python
使用python实现BLAST
Feb 12 Python
解决python flask中config配置管理的问题
Jul 26 Python
Django 博客实现简单的全文搜索的示例代码
Feb 17 Python
Python tkinter 下拉日历控件代码
Mar 04 Python
keras 多任务多loss实例
Jun 22 Python
python3获取控制台输入的数据的具体实例
Aug 16 Python
Pycharm安装Qt Design快捷工具的详细教程
Nov 18 Python
pytorch 实现多个Dataloader同时训练
May 29 Python
Python使用Kubernetes API访问集群
May 30 Python
Python列表的索引与切片
Apr 07 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
星际争霸任务指南——神族
2020/03/04 星际争霸
php中青蛙跳台阶的问题解决方法
2018/10/14 PHP
图片Slider 带左右按钮的js示例
2013/08/30 Javascript
Lab.js初次使用笔记
2015/02/28 Javascript
jQuery实现的简单对话框拖动功能示例
2018/06/05 jQuery
koa上传excel文件并解析的实现方法
2018/08/09 Javascript
webuploader实现上传图片到服务器功能
2018/08/16 Javascript
Vue模板语法中数据绑定的实例代码
2019/05/17 Javascript
微信小程序实现图片上传
2019/05/23 Javascript
javascript 高级语法之继承的基本使用方法示例
2019/11/11 Javascript
JS可断点续传文件上传实现代码解析
2020/07/30 Javascript
[01:32]DOTA2 2015国际邀请赛中国区预选赛第四日战报
2015/05/29 DOTA
[03:02]安得倚天剑,跨海斩长鲸——中国军团出征DOTA2国际邀请赛
2018/08/14 DOTA
python使用正则搜索字符串或文件中的浮点数代码实例
2014/07/11 Python
Python中非常实用的一些功能和函数分享
2015/02/14 Python
举例讲解Python中is和id的用法
2015/04/03 Python
Django中URL视图函数的一些高级概念介绍
2015/07/20 Python
听歌识曲--用python实现一个音乐检索器的功能
2016/11/15 Python
Django项目中model的数据处理以及页面交互方法
2018/05/30 Python
pyqt远程批量执行Linux命令程序的方法
2019/02/14 Python
python3 property装饰器实现原理与用法示例
2019/05/15 Python
python计算n的阶乘的方法代码
2019/10/25 Python
python序列化与数据持久化实例详解
2019/12/20 Python
python字典通过值反查键的实现(简洁写法)
2020/09/30 Python
小程序瀑布流解决左右两边高度差距过大的问题
2019/02/20 HTML / CSS
N.Peal官网:来自伦敦的高档羊绒品牌
2018/10/29 全球购物
解释一下Windows的消息机制
2014/01/30 面试题
Exception类的常用方法
2012/06/16 面试题
项目资料员岗位职责
2013/12/10 职场文书
团队精神演讲稿
2013/12/31 职场文书
教育技术职业规划范文
2014/03/04 职场文书
职务聘任书范文
2014/03/29 职场文书
城管执法人员纪律作风整顿思想汇报
2014/09/13 职场文书
2015年社区教育工作总结
2015/05/13 职场文书
民间借贷被告代理词
2015/05/23 职场文书
js实现模拟购物商城案例
2021/05/18 Javascript