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")
AI 代码解读
## 读取前几条
users.head()
AI 代码解读


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()
AI 代码解读


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()
AI 代码解读


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
AI 代码解读
(150, 6)
AI 代码解读
users.loc[1:3,'SepalWidthCm']
AI 代码解读
1    3.0
2    3.2
3    3.1
Name: SepalWidthCm, dtype: float64
AI 代码解读
#去除有NaN的数据
users['SepalLengthCm'].dropna()[1:5]
AI 代码解读
1    4.9
2    4.7
3    4.6
4    5.0
Name: SepalLengthCm, dtype: float64
AI 代码解读
#用seaborn做一个简单的可视化
import seaborn
#因为我用的是jupyter notebook,所以要加上这句话
%matplotlib inline
#箱线图
seaborn.boxplot(users['PetalWidthCm'].dropna())
AI 代码解读

output_7_1

#柱状图
seaborn.distplot(users['PetalWidthCm'].dropna())
AI 代码解读

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())
AI 代码解读

output_9_1

目录
打赏
0
0
0
0
1243
分享
相关文章
DC学院爬虫学习笔记(一):什么是爬虫?
网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本
2851 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等