python数据预处理之将类别数据转换为数值的方法
时间:2019-03-30
本文章向大家介绍python数据预处理之将类别数据转换为数值的方法,主要包括python数据预处理之将类别数据转换为数值的方法使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
在进行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数据预处理之将类别数据转换为数值的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- SwiftUI:用枚举切换视图状
- 【POI】maven引用POI的依赖,XSSFWorkbook依旧无法使用的问题。
- SwiftUI: 将数据写入文档目录
- 如何从YouTube搬运视频?| Mixlab代码入门
- 「MoreThanJava」Day 7:接口详解
- Python 基础(十一):面向对象
- 使用tensorflow进行音乐类型的分类
- Mac安装brew 及安装报错的解决办法【已解决】
- 为什么要停止过度使用置换重要性来寻找特征
- 5个可以帮助pandas进行数据预处理的可视化图表
- 聊聊dubbo-go的leastActiveLoadBalance
- 聊聊dubbo-go的randomLoadBalance
- 聊聊dubbo-go的roundRobinLoadBalance
- PowerBI 不同日期区间的活动逐日对比分析
- flask SQLAlchemy查询数据库最近30天,一个月,一周,12小时或之前的数据