聲明
工作后,很不幸的成為了團隊中的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的集成編譯環境,作為后備環境。
不早了,今天先到這里,下次再聊!