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

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

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

准备知识

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()


IdSepalLengthCmSepalWidthCmPetalLengthCmPetalWidthCmSpecies
015.13.51.40.2Iris-setosa
124.93.01.40.2Iris-setosa
234.73.21.30.2Iris-setosa
344.63.11.50.2Iris-setosa
455.03.61.40.2Iris-setosa

users.tail()


IdSepalLengthCmSepalWidthCmPetalLengthCmPetalWidthCmSpecies
1451466.73.05.22.3Iris-virginica
1461476.32.55.01.9Iris-virginica
1471486.53.05.22.0Iris-virginica
1481496.23.45.42.3Iris-virginica
1491505.93.05.11.8Iris-virginica

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


IdSepalLengthCmSepalWidthCmPetalLengthCmPetalWidthCm
count150.000000150.000000150.000000150.000000150.000000
mean75.5000005.8433333.0540003.7586671.198667
std43.4453680.8280660.4335941.7644200.763161
min1.0000004.3000002.0000001.0000000.100000
25%38.2500005.1000002.8000001.6000000.300000
50%75.5000005.8000003.0000004.3500001.300000
75%112.7500006.4000003.3000005.1000001.800000
max150.0000007.9000004.4000006.9000002.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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值