我的Pandas应用场景
声明
工作后,很不幸的成为了团队中的QA。QA这个角色吧,说起来高大上,实际很苦逼,一句话概括一下:吃力不讨好!作为新人,公司每月一分钱没少我,至少现在跟开发的待遇是一样的,所以我还是得兢兢业业的对待自己的工作。
项目越做越复杂,写验收测试的时候,往往验收场景容易构造,但是该场景下的预期数据、甚至是原始数据太难构造了,尤其我是处于通信行业,数据库的表数据字段极其多、数据表也极其的多。不怕大家笑话,我开始的时候是通过Scala的函数式编程,一点一点的自己写程序维护表的字段名称、数据的split(还好都是csv格式的数据)、表join、格式的转换等。后来就疯了!我的视力都是模糊的最后。
有一次参加团队内部外请教练的一个培训,上面的教练滔滔不绝的讲着她关于自己的一套推荐系统多么多么的nubility,大家在下面无聊的听着。引起我注意的是她们使用Python作为开发语言。Python我是知道的,上学的时候做个一个基于图像的测量项目,先是使用python版本的OpenCV开发的,后来才改为C++。她重点推荐的是Python的numpy、Pandas和Ipython。当时我就在笔记本上记了一下。
后来内部要做数据分析,我买了一本书《利用Python进行数据分析》大概,里面详细的介绍了Pandas、numpy等。不怕大家笑话,我的数据分析能力没什么长进,但是被Pandas的数据处理方式震撼了(请大家原谅我不是一个IT人士,刚入行)。Pandas就是我要找的构造预期数据的神器啊!
可能有人就会笑了,构造数据用得着使用Pandas么,直接使用SQL就好!可问题是,我们使用Spark集群环境,环境不稳定,而且运行较慢,动不动会出现问题,而且开发的代码很多也是使用SQL实现,总有点“抄袭”的嫌疑,为了表示我的工作是独立的,当然不能使用SQL,而且也不好用。所以,我下定决心要将Pandas、numpy引入我的工作中!
目前来看,效果还是不错的,后来到Pandas的贴吧,发现好冷清,而且网上的资料大多都是翻译官网的10分钟入门。其实Pandas很简单,复杂在处理问题的方法太多了,让新手没法选择!我就挣扎了很多天,天天抱着手机看官网的doc,才有点明白,而且结合我的工作,有些方法就活起来了。
没别的用处,就是想分享几个我的Pandas应用场景。由于我才疏学浅,可能有不恰当的地方,由于工作的限制,可能Pandas全貌我也不用太清楚,但是还是尝试一下吧。
本文先讲一下我安装的一些软件,和一些注意事项。
为了运行Pandas,必须安装如下软件:
Python,2.7或者3.4都可以,我最先使用的是3.4,后来由于Spark集群只支持python2,所以改为了2.7,官网下载安装即可。
numpy,官网下载windows源代码,或者能够下载到exe可执行包也行,如果使用源代码,在安装的使用可能会有点问题,后面会讲到。
pandas,官网下载源代码,我使用的是0.16的。
ipython,这个可以下载源代码,不过推荐pip的方式安装。
另外,可能还需要TDM-GCC,这个是windows的gcc平台,主要是编译numpy的源代码要用到。
如果下载的是最新的python,其默认包含pip程序,在cmd中,输入pip install 软件名称即可安装程序。
但是安装顺序推荐如下:
1. python,exe包,安装即可。
2. numpy,源代码包,cmd进入解压目录,找到setup.py,输入python setup.py install,如果出现
“Unable to find vcvarsall.bat”错误,就是因为numpy需要编译C和一些代码,而你的电脑中没有合适的C编译器,可以参考
http://my.oschina.net/zhangdapeng89/blog/54407
的解决方法。这里我将Migwin改为了TDM-GCC,因为TDM-GCC确实简单一些,将TDM-GCC的bin加入path,然后将其中的一个mingw32-make.exe改为make.exe即可,然后在安装numpy的cmd中输入:python setup.py install build --compiler=mingw32 即可。
3. 安装Pandas,如果出现类似问题,同2;
4. 安装ipython,这里推荐在cmd中使用:pip install ipython命令,提示缺什么包,就使用pip install 包名,安装即可。安装完之后,可以在开始的菜单中的运行窗口输入:
ipython notebook 命令,就能启动ipython的基于浏览器的集成编译环境。
最后,我使用PyCharm的集成编译环境,作为后备环境。
不早了,今天先到这里,下次再聊!
我的Pandas应用场景的更多相关文章
- 我的Pandas应用场景(2)
上文交代了一些啰嗦事,本文开始,就要来点实际的了. 先来一个比较简单的场景: Given:一个包括N(极其复杂,这里取3个)个列的DataFrame:df,df包括index: And:对df所有列元 ...
- pandas中df.ix, df.loc, df.iloc 的使用场景以及区别
pandas中df.ix, df.loc, df.iloc 的使用场景以及区别: https://stackoverflow.com/questions/31593201/pandas-iloc-vs ...
- 整理pandas操作
本文原创,转载请标识出处: http://www.cnblogs.com/xiaoxuebiye/p/7223774.html 导入数据: pd.read_csv(filename):从CSV文件导入 ...
- 深入理解pandas读取excel,txt,csv文件等命令
pandas读取文件官方提供的文档 在使用pandas读取文件之前,必备的内容,必然属于官方文档,官方文档查阅地址 http://pandas.pydata.org/pandas-docs/versi ...
- Pandas模块
前言: 最近公司有数据分析的任务,如果使用Python做数据分析,那么对Pandas模块的学习是必不可少的: 本篇文章基于Pandas 0.20.0版本 话不多说社会你根哥!开干! pip insta ...
- numpy、pandas
numpy: 仨属性:ndim-维度个数:shape-维度大小:dtype-数据类型. numpy和pandas各def的axis缺省为0,作用于列,除DataFrame的.sort_index()和 ...
- 借网站日记分析~普及一下Pandas基础
对网站日记分析其实比较常见,今天模拟演示一下一些应用场景,也顺便说说Pandas,图示部分也简单分析了下 1.数据清洗¶ 一般数据都不可能直接拿来用的,或多或少都得清理一下,我这边就模拟一下清洗完 ...
- pandas中遍历dataframe的每一个元素
假如有一个需求场景需要遍历一个csv或excel中的每一个元素,判断这个元素是否含有某个关键字 那么可以用python的pandas库来实现. 方法一: pandas的dataframe有一个很好用的 ...
- pandas处理时间序列(2):DatetimeIndex、索引和选择、含有重复索引的时间序列、日期范围与频率和移位、时间区间和区间算术
一.时间序列基础 1. 时间戳索引DatetimeIndex 生成20个DatetimeIndex from datetime import datetime dates = pd.date_rang ...
随机推荐
- c++中&和&&有什么差别
他们不同点在于&&相当一个开关语句,就是说假设&&前面值为false那么他就不继续运行后面的表达式:而&无论前面的值为什么,总是运行其后面的语句. &能 ...
- Java多线程的~~~Lock接口和ReentrantLock使用
在多线程开发.除了synchronized这个keyword外,我们还通过Lock接口来实现这样的效果.由Lock接口来实现 这样的多线程加锁效果的优点是非常的灵活,我们不在须要对整个函数加锁,并且能 ...
- C--运算符,表达式和语句实例
//第五章 运算符,表达式和语句 #include<stdio.h> //引入头文件 #include<math.h> #define ADJUST 7.64 //定义常量 # ...
- 给Notepad++ 加右键菜单带图标
原文:给Notepad++ 加右键菜单带图标 从网上下载下来的Notepad++ http://download.tuxfamily.org/notepadplus/6.3.3/npp.6.3.3. ...
- IOS开发计算文本尺寸
在IOS开发中例如微博,QQ聊天界面中要显示大量的文字信息,这样需要计算出文字部分的尺寸,才能设计出合适的控件尺寸和位置.下面是IOS 7.0计算文本尺寸的方法.- (CGRect)boundingR ...
- 浅谈JavaScript性能
最近在JavaScript性能方面有所感悟,把我的经验分给大家: 说到JavaScript,就不得不说它的代码的运行速度—— 在我初学JavaScript的时候,只是觉得它是一个很强大的脚本.渐渐的, ...
- 萧墙HTML5手机发展之路(51)——jquerymobile在提高页面访问速度
正在使用jQuery Mobile开发时间可以选择单页模板和多页模板,在单页模板时从一个页面跳转到另一个页面时从需要server要求.用户会感到轻微的停顿. 使用多页模板,为了改善网页之间跳跃的流畅, ...
- windows tcp端口映射或端口转发
windows tcp端口映射或端口转发 windows内部有一个叫netsh的玩意,可以把tcp端口进行映射或转发,可惜不支持udp.举个例子:一台windows有一个80端口,对外可以访问.另有一 ...
- ExtJs--12--Ext定义类的requires uses singleton 三个配置项的使用
Ext.onReady(function(){ /* * requires uses singleton 三个配置项的使用 */ Ext.define("A",{ //requir ...
- 解决水晶报表提示“未知的查询引擎错误” FOR VS2010
原文:解决水晶报表提示“未知的查询引擎错误” FOR VS2010 在VS2010环境下运行水晶报表(当然要先装上Crystal Report For VS2010), 在SetDataSource方 ...