Python数据分析与挖掘实战中的错误总结与分析(持续更新)
作者:互联网
1.前言
博主研究生第一年已经成为过去式了,上了课,修了学分。接下来两年就是要搞搞学术了,方向为:大数据分析与数据挖掘。从此篇开始,就将学习过程中一些问题和想法与友交流之。这里是博主在学习中看的一本书《python数据分析与挖掘实战》中基础篇的一些代码规范以及参考方法,供大家学习。
2.错误分析
由于第一章和第二章较为简单,这里就不在赘述,涉及到官方文档,大家一定多看看。
2.1第三章数据探索部分
- 代码3-1餐饮营销数据异常值检测代码
这个代码主要是利用箱型图来将异常值进行显示,按照书上敲完代码执行后,会抛出一个TypeError:'AxesSubplot' object is not subscriptable。如下面图所示:
错误提示呢,是由于在使用DataFrame方法画箱型图的时候,没有指定P的类型,导致不能正常的获取其下标。也就是上一句中:
p=data.boxplot()
修改这一句为:
p=data.boxplot(return_type='dict')
便会得到正确的结果,其余部分的代码都很好理解。
另外要提示的是下面这两句是在以后的代码中不可或缺的,一个是为了让中文标签正常显示,另一个是为了正常显示负号。根据代码的需求,要添加时候便添加。
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['font.family']='sans-serif'
- 代码3-2餐饮销量数据统计量分析代码
这个代码主要是对数据的统计量分析,很好理解,里面没有问题。要提醒的是开头的这行代码:
from __future__ import print_function
这个代码是将未来版本的一些特性导入到现在使用的版本中,如果你的python版本较高,那么可以不使用这个方法。
- 代码3-3菜品盈利帕累托图代码
贡献图分析又称帕累托分析,原理就是帕累托法则,对于一个公司来说,80%的利润常常来自于20%最畅销的产品,而其他80%的产品只产生了20%的利润,从而又称20/80定律。
根据提供的数据和代码,很容易就能得到菜品盈利的帕累托图,这里要强调的是下面这一点,在对数据排序的时候使用到下面的方法,ascending=False表示的按照倒序来排列,但是会抛出一个AttributeError: 'Series' object has no attribute 'sort'。
data.sort(ascending=False)
这是由于data在这里的类型是<class 'pandas.core.series.Series'>,可惜的是Series并没有sort这个方法,所以要采用sort_values()方法,sort_values是归于pandas的,具体是DataFrame.sort_values,但是Series也具有这样的方法。修改为如下的代码:
data.sort_values(ascending=False)
具体调用是这样的:DataFrame.sort_values(by, axis=0, ascending=True, inplace=False, kind='quicksort', na_position='last'),by要求传入一个字符或一个字符列表指定axis的排序,axis=0表示列,axis=1表示行,ascending True or False就是升序和降序了。kind是排序的类型,有quicksort快速排序、mergesort插入排序、heasort堆排序等。na_position是缺失值的位置,一般是放在后面,当然也可以放在前面,其余参数一般不会用到。
- 代码3-4餐饮销量数据相关性分析
这个代码很简单,利用好corr()方法就行,没有什么要强调的。
第四章:敬请期待,不久更新 !
标签:数据分析,实战,False,Python,代码,ascending,sort,values,data 来源: https://blog.csdn.net/qq_34454366/article/details/95210230