关于《利用python进行数据分析》心得
今天终于把关于python的第二本书完全的读完,并且做了20mb左右的笔记。算上培训班,也算是正儿八经的在python这门最优雅的语言上入门了。加上值几天边看书,边用python对600多mb的数据进行清洗,并且发现一部分小错误,我在此写下部分心得以便于供各位同学,同行共勉。我将围绕本书的库,环境和问题进行讨论。
首先是库,本书围绕三个库进行讨论——numpy,pandas和matplotlib。Numpy是个模仿R的库,对python的独特的数组进行向量操作——将数组作为矩阵进行切片,换行,变换,转置,计算等一系列操作。Numpy的强大之处建立在python的天生优势——一切皆对象的基础之上,这也正是numpy的强大——一切皆数组(矩阵)。所以numpy是未来python做SVD,SVM等机械学习的基础——变量矩阵化。
第二大库——pandas,pandas是基于numpy的一个超级库,这个库不仅完成了numpy的所有基本功能,并且更进一步,矩阵数据框化(DataFrame)。相信熟悉R语言和SAS的朋友对这个概念并不陌生,因为我们几乎所有的数据都是经过数据框进行处理的。数据框的最大特点就是——index(索引)和columns(字段)。也就是pandas所有的操作都是围绕这两个东西进行的。包括增删改,补充,添加等等。也就是利用pandas你能干所有excel可以干的事情,真正意义上的数据管理和数据处理。
第三大库——matplotlib,python的标志性画图库,然而这个库并没有什么真正意义上的价值,笔者发现,通过python处理过的数据直接经过R作出图像反而更快,更有可视感。另外,真正画图的库使seaborn(因为可变化多)。
第二,是python做数据分析的环境和编辑器。我知道很多python开发的朋友喜欢用pycharm,但是不好意思,笔者实际操作和阅读,以及真实案例来看,anaconda才是真正意义上的python数据分析和挖掘的操作器(可以分段提交代码)。
书的环境是2.3版本,所以该书并没有对中文文本进行描述,因为逼人要清理大量的企业信息,这些数据都是中文,在一开始,我被这个问题很困惑,但是后来随着研究,我也找到了解决方法:
1. 数据挖掘,建议用3,不要用2!3对中文支持更好,并且更加聪明!
2. 用spyber,尽量不要用jupyter!因为spyber可以帮你保存你缓存的数据!!
3. 请阅读pandas的最新文档,该书成书时间在2013年,所以很多信息都过时了。
如果你喜欢用python2,那么你在操作数据库时候,所有输出数据都是元组格式,不过不要紧,你将格式改为数据框就可以避免,第二,请你保证你的编辑器的格式和数据库或者对象一致。
最后,是本书的问题。本书由于成书年代久,所以很多操作已经过时,笔者发现了以下几个小错误。
1. 对数据库的操作现在直接用pd.read_sql就可以,不需要再再入库
2. oi类在pandas已经被转移成一个新库——pandas-dataread,请自行下载。
3. 本书没有对描述性统计分析进行跟深入叙述,你要学更多,请阅读scipy文档。
4. 由于本书的版本问题,所以本书的最后两章没有任何意义。
以上就是笔者对这本书的概述和心得,总的来说,此书的确值得一读,特别是奥巴马选举案例把pandas的索引操作展示的玲离尽致,但是金融案例你看看就好了,没有任何参考价值。
同时,在对比了python和excel对数据清洗上的区别后,我可以清楚的看到,面对200mb以下的小数据,excel是无敌的,并且超越一切SAS,R和JMP之流。完美的图形化和自能化是excel最大的优势,但是当数据超过200mb之时,请自觉使用python(不要用python操作200mb以下数据,杀鸡焉用牛刀)。
同时对比了运算时间,R最快,Python比较慢(C语言的呈现毕竟牛逼),但是R的可读性很差,python在神一样的anaconda编辑器之下,可读性和展示性非常好。
最后给出本书特点——第四章,第五章(重点阅读!!!带星星),第六章(也是重点),第七章(重点,但是不带星),第八章(无所谓),第九章(重点,python的特点,模仿sql的group
by,并且达到数据合并和透视功能),第十章(还是要读读的,毕竟转化时间)。
以上就是我对本书的认识,请各位指点。
马喆诚 2017年2月23日,周四晚,杭州