3.1 数据质量分析
2016-12-05 09:19
204 查看
这是书籍《Python数据分析与挖掘实战》里面第3.1节的一些实践。
理论废话就不讲了,主要是程序代码、调试报错以及结果记录,附带一些心得。
首先说明,数据是书里面网站自带的。
http://pan.baidu.com/s/1kVK2M39 这是下载地址。密码要的请评论问。
首先看录入数据的代码:
说明一下,这里编码改成 GBK 而不用 utf-8 主要是报错出注释里面 uft-8 是乱码,看着恶心。
对于初学者有个问题,就是
比如,我把这个代码文件取名为 3_1.py 保存在了 C:\Users\Administrator\Desktop\Python\datadig 这个路径,
同时 catering_sale.xls 文件也保存在这个文件夹下,那么单引号里面的路径就直接写 catering_sale.xls 就行了。
如果我把 xls 数据文件放在了C:\Users\Administrator\Desktop\Python\datadig\data ,而代码文件不变呢?
正确的路径代码是:
然后是结果:
结果里面有个莫名其妙的警告,不知道什么意思,懒得管了。
接下来,给出了一段代码:
需要说明的是,这里的路径注意检查。以后路径就不额外说明了,都按照本文开头那段做。
然后,命令行给出了一个 future warning,其实不用管,就是说以后的版本可能会怎么样云云,现在屁事没有。
运行结果如下:
这个图叫箱线图 boxplot()
超过上下界的几个销售数据“可能”是异常值,就是400以下,5000以上的。
这里就是 22、51、60、6607.4、9106.44 这几个。
书里面说,“缺失值个数为:1“ 倒是没看见在哪
理论废话就不讲了,主要是程序代码、调试报错以及结果记录,附带一些心得。
首先说明,数据是书里面网站自带的。
http://pan.baidu.com/s/1kVK2M39 这是下载地址。密码要的请评论问。
首先看录入数据的代码:
#-*- coding:GBK -*- import pandas as pd catering_sale = 'data/catering_sale.xls' # 读取数据 data = pd.read_excel(catering_sale, index_col = u'日期') # 读取数据,指定“日期”列为索引列 print data.describe()
说明一下,这里编码改成 GBK 而不用 utf-8 主要是报错出注释里面 uft-8 是乱码,看着恶心。
对于初学者有个问题,就是
catering_sale = 'catering_sale.xls' #餐饮数据这里的路径到底怎么写?我摸索了很久。
比如,我把这个代码文件取名为 3_1.py 保存在了 C:\Users\Administrator\Desktop\Python\datadig 这个路径,
同时 catering_sale.xls 文件也保存在这个文件夹下,那么单引号里面的路径就直接写 catering_sale.xls 就行了。
如果我把 xls 数据文件放在了C:\Users\Administrator\Desktop\Python\datadig\data ,而代码文件不变呢?
正确的路径代码是:
catering_sale = 'data\catering_sale.xls' #餐饮数据亲测可行。同时值得注意的是
catering_sale = 'data\catering_sale.xls' # 读取数据也是可行的,不管是哪个方向的斜杠输入,都能正确识别。
然后是结果:
结果里面有个莫名其妙的警告,不知道什么意思,懒得管了。
接下来,给出了一段代码:
#-*- coding: utf-8 -*- import pandas as pd catering_sale = 'data/catering_sale.xls' #餐饮数据 data = pd.read_excel(catering_sale, index_col = u'日期') #读取数据,指定“日期”列为索引列 import matplotlib.pyplot as plt #导入图像库 plt.rcParams['font.sans-serif'] = ['SimHei'] #用来正常显示中文标签 plt.rcParams['axes.unicode_minus'] = False #用来正常显示负号 plt.figure() #建立图像 p = data.boxplot() #画箱线图,直接使用DataFrame的方法 x = p['fliers'][0].get_xdata() # 'flies'即为异常值的标签 y = p['fliers'][0].get_ydata() y.sort() #从小到大排序,该方法直接改变原对象 #用annotate添加注释 #其中有些相近的点,注解会出现重叠,难以看清,需要一些技巧来控制。 #以下参数都是经过调试的,需要具体问题具体调试。 for i in range(len(x)): if i>0: plt.annotate(y[i], xy = (x[i],y[i]), xytext=(x[i]+0.05 -0.8/(y[i]-y[i-1]),y[i])) else: plt.annotate(y[i], xy = (x[i],y[i]), xytext=(x[i]+0.08,y[i])) plt.show() #展示箱线图
需要说明的是,这里的路径注意检查。以后路径就不额外说明了,都按照本文开头那段做。
然后,命令行给出了一个 future warning,其实不用管,就是说以后的版本可能会怎么样云云,现在屁事没有。
运行结果如下:
这个图叫箱线图 boxplot()
超过上下界的几个销售数据“可能”是异常值,就是400以下,5000以上的。
这里就是 22、51、60、6607.4、9106.44 这几个。
书里面说,“缺失值个数为:1“ 倒是没看见在哪
相关文章推荐
- Python动态类型的学习---引用的理解
- Python3写爬虫(四)多线程实现数据爬取
- 垃圾邮件过滤器 python简单实现
- 下载并遍历 names.txt 文件,输出长度最长的回文人名。
- install and upgrade scrapy
- Scrapy的架构介绍
- Centos6 编译安装Python
- 使用Python生成Excel格式的图片
- 让Python文件也可以当bat文件运行
- [Python]推算数独
- Python中zip()函数用法举例
- Python中map()函数浅析
- Python将excel导入到mysql中
- Python在CAM软件Genesis2000中的应用
- 使用Shiboken为C++和Qt库创建Python绑定
- FREEBASIC 编译可被python调用的dll函数示例
- Python 七步捉虫法