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 之编写简单乘法运算题
Feb 27 Python
Python三级菜单的实例
Sep 13 Python
Python分支结构(switch)操作简介
Jan 17 Python
python线程池threadpool实现篇
Apr 27 Python
python 实现提取log文件中的关键句子,并进行统计分析
Dec 24 Python
Django 解决上传文件时,request.FILES为空的问题
May 20 Python
Python生成随机验证码代码实例解析
Jun 09 Python
Pycharm无法打开双击没反应的问题及解决方案
Aug 17 Python
详解python polyscope库的安装和例程
Nov 13 Python
python实现企业微信定时发送文本消息的实例代码
Nov 25 Python
史上最详细的Python打包成exe文件教程
Jan 17 Python
Python爬虫实例之2021猫眼票房字体加密反爬策略(粗略版)
Feb 22 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
Zend framework处理一个http请求的流程分析
2010/02/08 PHP
PHP开发制作一个简单的活动日程表Calendar
2016/06/20 PHP
PHP CURL采集百度搜寻结果图片不显示问题的解决方法
2017/02/03 PHP
PHP校验15位和18位身份证号的类封装
2018/11/07 PHP
PHP的微信支付接口使用方法讲解
2019/03/08 PHP
javascript getElementsByClassName函数
2010/04/01 Javascript
JS获取鼠标坐标的实例方法
2013/07/18 Javascript
JavaScript fontcolor方法入门实例(按照指定的颜色来显示字符串)
2014/10/17 Javascript
javascript结合fileReader 实现上传图片
2015/01/30 Javascript
深入讲解AngularJS中的自定义指令的使用
2015/06/18 Javascript
全系IE支持Bootstrap的解决方法
2015/10/19 Javascript
Bootstrap每天必学之下拉菜单
2015/11/25 Javascript
实例详解jQuery Mockjax 插件模拟 Ajax 请求
2016/01/12 Javascript
js拖拽的原型声明和用法总结
2016/04/04 Javascript
深入浅析JavaScript中的RegExp对象
2017/09/18 Javascript
使用jQuery实现两个div中按钮互换位置的实例代码
2017/09/21 jQuery
vue父组件向子组件(props)传递数据的方法
2018/01/02 Javascript
VUE-Table上绑定Input通过render实现双向绑定数据的示例
2018/08/27 Javascript
uni-app如何页面传参数的几种方法总结
2020/04/28 Javascript
[51:53]完美世界DOTA2联赛决赛日 Inki vs LBZS 第二场 11.08
2020/11/10 DOTA
python文件读写操作与linux shell变量命令交互执行的方法
2015/01/14 Python
python fabric使用笔记
2015/05/09 Python
python requests 使用快速入门
2017/08/31 Python
解决tensorflow1.x版本加载saver.restore目录报错的问题
2018/07/26 Python
Python编写一个验证码图片数据标注GUI程序附源码
2019/12/09 Python
Keras构建神经网络踩坑(解决model.predict预测值全为0.0的问题)
2020/07/07 Python
prAna官网:瑜伽、旅行和冒险服装
2019/03/10 全球购物
法国在线药房:Shop Pharmacie
2019/11/26 全球购物
优秀护士先进事迹
2014/05/08 职场文书
电子专业毕业生自荐信
2014/05/25 职场文书
教室标语大全
2014/06/21 职场文书
环境监测与治理技术专业求职信
2014/07/06 职场文书
2015廉洁自律个人总结
2015/02/14 职场文书
征求意见函
2015/06/05 职场文书
中学音乐课教学反思
2016/02/18 职场文书
Python办公自动化之教你用Python批量识别发票并录入到Excel表格中
2021/06/26 Python