我的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 ...
随机推荐
- visual studio 辅助工具
resharper 这是一个收费软件 需要下载对应版本的注册机. 效果如图所示: 这里的using 很多没有用到,他会用灰色标记,你都可以统统去掉. 声明一个类 ,要求 首字母大写,如果你小写了,他 ...
- Windows Phone 8.1 多媒体(3):音乐
原文:Windows Phone 8.1 多媒体(3):音乐 Windows Phone 8.1 多媒体(1):相片 Windows Phone 8.1 多媒体(2):视频 Windows Phone ...
- Linux 经常使用 性能 检测 命令 说明
1.uptime [root@smgsim02 ~]# uptime 15:08:15 up 98 days, 4:19, 2 users, load average: 0.07, 0.29, ...
- 谈论quick-cocos2d-x和cocos2d-x lua了解差异
之前说,我把这个两个词区别.经过太长时间.当然,反击的麻烦.quick-cocos2d-x它提到quick,cocos2d-x lua姑且称为本地lua对. 我认为,首先与这两个小的朋友接触会跟着或多 ...
- struts2文件下载 <result type="stream">
<!--struts.xml配置--> <action name="download" class="com.unmi.action.DownloadA ...
- JavaScript重载解读
在JavaScript有一个特殊的数据类型---Function种类,JavaScript每个功能Function的类型,例如可以.由于函数是对象.指针,不会与某个函数绑定. <pre name ...
- 如何判断微信内置浏览器(通过User Agent实现)
在进行微信公众账号开发的时候,其中很大一块是微站点的开发,我们需要知道当前的浏览器是微信内置的浏览器,那么如何判断呢? 微信内置浏览器的 User Agent 如何判断微信内置浏览器,首先需要获取微信 ...
- Callback
由于 JavaScript 语句(指令)是逐一执行的 - 按照次序,动画之后的语句可能会产生错误或页面冲突,因为动画还没有完成. 为了避免这个情况,您可以以参数的形式添加 Callback 函数. j ...
- vsphere client 虚拟机安装操系统
vSphere 是 VMware 推出的基于云计算的新一代数据中心虚拟化套件,提供了虚拟化基础架构.高可用性.集中管理.监控等一整套解决方案. VMware ESXi 是VMware vSphere ...
- web开发与设计--js数据类型,js运营商
1. js数据类型划分:号码值类型,布尔,串 由typeof能够看到什么类型的数据被详述. 举例: <span style="font-family:Microsoft YaHei;f ...