DC学院学习笔记(十一):数据预处理—数据清理

简介: 用python进行数据预处理的一些操作

终于到了数据存储与预处理的最后一讲了,感觉讲得还不错!下面来看看数据的预处理吧!

  • 格式转换
  • 缺失数据
  • 异常数据
  • 数据标准化操作

准备知识

Pandas

Pandas逐渐成为了一个非常大的库,在数据处理问题方面表现优秀,是一个不可或缺的工具,Pandas中包含两个主要的数据结构:Series & DataFrame
更多请看:

  1. 官方文档
  2. Pandas速查手册中文版

Seaborn

Seaborn是基于matplotlib的绘图库,可以制作更多更美观的图形,如Example gallery中也可以看到很多关于图像的示例。这个绘图库可以很好地辅助我们对数据进行第一步的观察
更多请看:
Seaborn tutorial

格式转换

如Python记录时间的方式,不能够直接实现减运算,就需要进行转换

  • pandas.to_datetime

缺失数据、异常数据

  • 忽略缺失数据
  • 直接标记
  • 利用平均值、最常出现值进行填充

标准化

一般在分析数据时进行操作

数据清理示例

这里还是用iris数据集举例

import pandas
users = pandas.read_csv("iris.csv")
## 读取前几条
users.head()


Id SepalLengthCm SepalWidthCm PetalLengthCm PetalWidthCm Species
0 1 5.1 3.5 1.4 0.2 Iris-setosa
1 2 4.9 3.0 1.4 0.2 Iris-setosa
2 3 4.7 3.2 1.3 0.2 Iris-setosa
3 4 4.6 3.1 1.5 0.2 Iris-setosa
4 5 5.0 3.6 1.4 0.2 Iris-setosa

users.tail()


Id SepalLengthCm SepalWidthCm PetalLengthCm PetalWidthCm Species
145 146 6.7 3.0 5.2 2.3 Iris-virginica
146 147 6.3 2.5 5.0 1.9 Iris-virginica
147 148 6.5 3.0 5.2 2.0 Iris-virginica
148 149 6.2 3.4 5.4 2.3 Iris-virginica
149 150 5.9 3.0 5.1 1.8 Iris-virginica

#查看平均值,标准差等,只针对数字的属性
users.describe()


Id SepalLengthCm SepalWidthCm PetalLengthCm PetalWidthCm
count 150.000000 150.000000 150.000000 150.000000 150.000000
mean 75.500000 5.843333 3.054000 3.758667 1.198667
std 43.445368 0.828066 0.433594 1.764420 0.763161
min 1.000000 4.300000 2.000000 1.000000 0.100000
25% 38.250000 5.100000 2.800000 1.600000 0.300000
50% 75.500000 5.800000 3.000000 4.350000 1.300000
75% 112.750000 6.400000 3.300000 5.100000 1.800000
max 150.000000 7.900000 4.400000 6.900000 2.500000

#查看数据的属性,150条,每条有6个属性
users.shape
(150, 6)
users.loc[1:3,'SepalWidthCm']
1    3.0
2    3.2
3    3.1
Name: SepalWidthCm, dtype: float64
#去除有NaN的数据
users['SepalLengthCm'].dropna()[1:5]
1    4.9
2    4.7
3    4.6
4    5.0
Name: SepalLengthCm, dtype: float64
#用seaborn做一个简单的可视化
import seaborn
#因为我用的是jupyter notebook,所以要加上这句话
%matplotlib inline
#箱线图
seaborn.boxplot(users['PetalWidthCm'].dropna())

output_7_1

#柱状图
seaborn.distplot(users['PetalWidthCm'].dropna())

output_8_1

#异常数据处理:筛选PetalWidthCm<2及PetalWidthCm>0.5
users_new=users[users["PetalWidthCm"]<2]
users_new=users_new[users_new["PetalWidthCm"]>0.5]
#再重新看一下柱状图
seaborn.distplot(users_new["PetalWidthCm"].dropna())

output_9_1

目录
相关文章
|
Web App开发 数据采集 JavaScript
|
数据采集 Python
|
数据采集 XML 数据格式
|
数据采集 Python 机器人
|
Web App开发 数据采集 移动开发
|
Web App开发 数据采集 缓存
DC学院爬虫学习笔记(一):什么是爬虫?
网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本
2734 0
|
数据挖掘 数据可视化 定位技术
|
机器学习/深度学习 TensorFlow 算法框架/工具
DC学院学习笔记(二十三):进阶机器学习技术概览
高阶的机器学习算法:深度学习,强化学习及迁移学习简单了解
2219 0
|
数据挖掘 Python
|
机器学习/深度学习 Python
DC学院学习笔记(二十一):用特征选择方法优化模型(二)
用特征选择方法优化模型:随机森林和L1正则化Lasso
2234 0