在进行python数据分析的时候,首先要进行数据预处理。

有时候不得不处理一些非数值类别的数据,嗯, 今天要说的就是面对这些数据该如何处理。

目前了解到的大概有三种方法:

1,通过LabelEncoder来进行快速的转换;

2,通过mapping方式,将类别映射为数值。不过这种方法适用范围有限;

3,通过get_dummies方法来转换。

import pandas as pd
from io import StringIOcsv_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数据预处理之将类别数据转换为数值的方法相关推荐

  1. 【Python】数据预处理之将类别数据转换为数值的方法(含Python代码分析)

    在进行Python数据分析的时候,首先要进行数据预处理.但是有时候不得不处理一些非数值类别的数据,遇到这类问题时该怎么解决呢? 目前为止,总结了三种方法,这里分享给大家. 一.通过mapping方式, ...

  2. 数据预处理之将类别数据数字化的方法 —— LabelEncoder VS OneHotEncoder

    LabelEncoder 和 OneHotEncoder 是什么 在数据处理过程中,我们有时需要对不连续的数字或者文本进行数字化处理. 在使用 Python 进行数据处理时,用 encoder 来转化 ...

  3. 地铁大数据挖掘之数据预处理——从原始一卡通数据提取城市地铁客流(二)

    关于初步处理,请参考地铁大数据挖掘之客流数据预处理--从原始一卡通数据提取城市地铁客流(一). 上一篇博客对数据进行了初步处理,得到结果如下图: "_10min"字段代表所处的时间 ...

  4. 地铁大数据挖掘之数据预处理——从原始一卡通数据提取城市地铁客流(一)

    这是很久以前写的一段代码,很简单很基础.最近突然用到,这里把它分享出来,希望可以为有需要的朋友提供帮助. 以及欢迎阅读这一系列第二篇:地铁大数据挖掘之客流数据预处理--从原始一卡通数据提取城市地铁客流 ...

  5. python数据预处理代码_Python中数据预处理(代码)

    本篇文章给大家带来的内容是关于Python中数据预处理(代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助.1.导入标准库import numpy as np import matp ...

  6. python数据预处理 重复行统计_Python数据分析之数据预处理(数据清洗、数据合并、数据重塑、数据转换)学习笔记...

    1. 数据清洗 1.1 空值和缺失值的处理 ​空值一般表示数据未知.不适用或将在以后添加数据.缺失值是指数据集中某个或某些属性的值是不完整的. ​一般空值使用None表示,缺失值使用NaN表示 1.1 ...

  7. Python数据分析之数据预处理(数据清洗、数据合并、数据重塑、数据转换)学习笔记

    文章目录 1. 数据清洗 1.1 空值和缺失值的处理 1.1.1 使用isnull()和notnull()函数 1.1.1.1 isnull()语法格式: 1.1.1.2 notnull()语法格式: ...

  8. cnn对网络数据预处理_CNN中的数据预处理和网络构建

    cnn对网络数据预处理 In this article, we will go through the end-to-end pipeline of training convolution neur ...

  9. 三、数据预处理——处理分类型数据:编码与哑变量

    三.处理分类型特征:编码与哑变量 点击标题即可获取文章相关的源代码文件哟! 在机器学习中,大多数算法,譬如逻辑回归,支持向量机SVM,k近邻算法等都只能够处理数值型数据,不能处理文字,在sklearn ...

最新文章

  1. div中加载html js,Div里面载入另一个页面的实现(Ajax取代框架)
  2. python input与返回值-Python 详解基本语法_函数_返回值
  3. Maven中的dependencyManagement 意义
  4. 1.11实例:保存图书信息
  5. java——File类常用方法
  6. Bottle 框架中的装饰器类和描述符应用
  7. 原生JS封装ajax方法
  8. 1000道Python题库系列分享十一(9道)
  9. 《你不知道的JavaScript》-- 精读(一)
  10. oracle--merge
  11. windows安装软件最好使用独立的文件夹
  12. 倒车雷达c语言编程,基于单片机的倒车雷达设计
  13. SVO2.0 安装编译
  14. 如何根据IP地址获取局域网内的主机名称
  15. 苹果cms影视建站系统免费吗?
  16. 2019全国大学生信息安全竞赛 web JustSoso(parse_url解析漏洞+序列化)
  17. 原生H5实现网易云轮播图
  18. java实现数字金额转换成汉字大写金额
  19. iOS第三方支付(支付宝SDK)
  20. Pyinstaller打包exe附带图片的方法

热门文章

  1. 北语18秋《计算机应用基础》练习1,每日一练丨一建实务科练习!
  2. 51CTO学习笔记--Linux运维故障排查思路与系统调优技巧视频课程(高俊峰)
  3. 计算机网络是显性课程还是隐性课程,显性课程与隐性课程
  4. 基尔霍夫定理 Kirchhoff's Matrix-Tree Theorem
  5. android:一卡通系统,基于Android嵌入式平台的QR码识别系统 - 中国一卡通网
  6. 基于阿克曼转向的车辆运动学模型 在simulink中建立车辆运动学模型
  7. Scala语言基础详解,并在IDEA中安装Scala插件
  8. 现在哪些行业是暴利行业?
  9. idea方法注解模板
  10. C语言编译的基本原理