声明

工作后,很不幸的成为了团队中的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应用场景的更多相关文章

  1. 我的Pandas应用场景(2)

    上文交代了一些啰嗦事,本文开始,就要来点实际的了. 先来一个比较简单的场景: Given:一个包括N(极其复杂,这里取3个)个列的DataFrame:df,df包括index: And:对df所有列元 ...

  2. pandas中df.ix, df.loc, df.iloc 的使用场景以及区别

    pandas中df.ix, df.loc, df.iloc 的使用场景以及区别: https://stackoverflow.com/questions/31593201/pandas-iloc-vs ...

  3. 整理pandas操作

    本文原创,转载请标识出处: http://www.cnblogs.com/xiaoxuebiye/p/7223774.html 导入数据: pd.read_csv(filename):从CSV文件导入 ...

  4. 深入理解pandas读取excel,txt,csv文件等命令

    pandas读取文件官方提供的文档 在使用pandas读取文件之前,必备的内容,必然属于官方文档,官方文档查阅地址 http://pandas.pydata.org/pandas-docs/versi ...

  5. Pandas模块

    前言: 最近公司有数据分析的任务,如果使用Python做数据分析,那么对Pandas模块的学习是必不可少的: 本篇文章基于Pandas 0.20.0版本 话不多说社会你根哥!开干! pip insta ...

  6. numpy、pandas

    numpy: 仨属性:ndim-维度个数:shape-维度大小:dtype-数据类型. numpy和pandas各def的axis缺省为0,作用于列,除DataFrame的.sort_index()和 ...

  7. 借网站日记分析~普及一下Pandas基础

      对网站日记分析其实比较常见,今天模拟演示一下一些应用场景,也顺便说说Pandas,图示部分也简单分析了下 1.数据清洗¶ 一般数据都不可能直接拿来用的,或多或少都得清理一下,我这边就模拟一下清洗完 ...

  8. pandas中遍历dataframe的每一个元素

    假如有一个需求场景需要遍历一个csv或excel中的每一个元素,判断这个元素是否含有某个关键字 那么可以用python的pandas库来实现. 方法一: pandas的dataframe有一个很好用的 ...

  9. pandas处理时间序列(2):DatetimeIndex、索引和选择、含有重复索引的时间序列、日期范围与频率和移位、时间区间和区间算术

    一.时间序列基础 1. 时间戳索引DatetimeIndex 生成20个DatetimeIndex from datetime import datetime dates = pd.date_rang ...

随机推荐

  1. Swift中文手册 -- The Basics

    原文:Swift中文手册 -- The Basics 基础部分 Swift 是 iOS 和 OS X 应用开发的一门新语言.然而,如果你有 C 或者 Objective-C 开发经验的话,你会发现 S ...

  2. UVA11627-Slalom(二分法)

    题目链接 题意:有n个宽为w的旗门,第i个旗门左端的坐标为(xi, yi),对于全部1 <= i < n满足yi < y(i+1).你有s双滑雪板,第j双的速度为sj(垂直向下的速度 ...

  3. UVa 10533 - Digit Primes

    题目:输出给定区间中,本身是素数,而且这个数的各位之和也是素数的数(称为位素数)的个数. 分析:数论.首先利用筛法,求出1000000内的全部的素数:然后在利用生成的素数表, 推断每一个数是不是各位之 ...

  4. 在遍历中使用 iterator/reverse_iterator 进行 Erase 的使用方法

    在遍历中使用 iterator/reverse_iterator 进行 Erase 的使用方法 罗朝辉 (http://blog.csdn.net/kesalin/) 本文遵循"署名-非商业 ...

  5. sql语句查询列的说明

    SELECT C.name,value FROM sys.columns C INNER JOIN sys.tables T ON C.object_id = T.object_idINNER JOI ...

  6. oracle 电子商务解决方案讲义

    1. 电商营销(CRM) - 高端客户体验 2. 当当网李国庆做 "千千面"购物体验 3. 所使用的唯一的产品oracle的CRM 4. 个人的事情.谁在世界上是用户体验. 5. ...

  7. CSS3可按进度变色的进度条

    原文:CSS3可按进度变色的进度条 今天是周末,看到一款利用CSS3实现的进度条应用,觉得非常棒,就将它分享给大家,并且将这款CSS3进度条的实现过程大致整理了一下,实现的关键是根据当前的进度需要能改 ...

  8. javascript and dom1

    <script type="text/javascript"> //数组 var beatles=Array(4); var beatles=Array(); cons ...

  9. unity资源

    unity资源集中贴 1.unity经验之谈 http://jingyan.baidu.com/article/19192ad820f17be53e570715.html 2.百度网盘,分享了一点模型 ...

  10. JS获取标签方法及兼容处理

    document.getElementById('Id名');  // 所有浏览器 document.getElementsByTagName('标签名'); // 所有浏览器 document.ge ...