我的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 ...
随机推荐
- 私人定制javascript中数组小知识点(Only For Me)
先上笑话,1.刚看到一个游泳的,想起公司组织去三亚旅游,老板跳海里,各种挣扎,捞上来老板第一句话:我记得我会游泳的啊. 2.媳妇说:老公对不起,我把你新买的自行车撞散架了! 老公:没事宝贝,你若安好, ...
- js 正则练习之语法高亮
原文:js 正则练习之语法高亮 学了几天正则,差不多该总结整理写成果了,之前就想写语法高亮匹配来着,不过水平不够,看着例子都不理解.今天就分析下 次碳酸钴 和 Barret Lee 语法高亮实现. 先 ...
- Facebook Hack 语言 简介
1. Hack 是什么? Hack 是一种基于HHVM(HipHop VM 是Facebook推出的用来执行PHP代码的虚拟机,它是一个PHP的JIT编译器,同时具有产生快速代码和即时编译的优点.)的 ...
- java设计模式之八代理模式(Proxy)
其实每个模式名称就表明了该模式的作用,代理模式就是多一个代理类出来,替原对象进行一些操作,比如我们在租房子的时候回去找中介,为什么呢?因为你对该地区房屋的信息掌握的不够全面,希望找一个更熟悉的人去帮你 ...
- Android Studio非gradleproject编译后的apk文件在哪?
非gradle的apk文件位置和gradle有一些差别,怎样找到apk文件在哪?我直接上图吧,选中project,右键: 在windows是选择"show in exlporer" ...
- CSS代码实现图片防盗链
CSS代码实现图片防盗链的方法其实很简单.在CSS文件中添加以下代码: img { filter:exPRession( this.不能去掉 ? "" : ( (!this.com ...
- android:由URL载入中ImageView
两种方法: 方法一: Bitmap bimage= getBitmapFromURL(bannerpath); image.setImageBitmap(bimage); public static ...
- js 模拟QQ聊天窗口图片播放效果(带滚轮缩放)
页面效果如下: 完整代码如下: <!DOCTYPE html> <html> <head> <title>Test</title> < ...
- javascript 学习总结(四)Date对象
1.Date.now() //Date.now() is in ECMAScript 5 //Prior to that, use +new Date() //获取当前时间 var now = (ty ...
- robin 今日南
我很高兴,在学校体育馆看到李彦宏博士. 这是第一个真正的一次在媒体上看到,只能看到人才足够多的人,现实,我觉得非常好. 我不是一个真正罗宾的粉丝.百度是不是很热衷于这家公司.,但现在我仍然兴奋,我会被 ...