作為數據分析師的你都有哪些常用工具
本文總結數據分析常用的軟體,以及推薦相應的學習參考資料。
1. Excel
常用操作有函數、可視化、數據透視表、VBA。
函數
可視化
i.單元格
ii.靜態圖
iii.動態圖
即帶有控制項(部分涉及VBA),可以選擇數據並動態展示結果的圖表,如果要用Excel來做業務數據的Dashboard,動態圖是很好的解決方案。
註:黃成明老師的《數據化管理》中的部分內容涉及如何用Excel建立業務運營工具。
數據透視表
Ctrl+A-->Alt-->D-->P-->F ——透視表「一條龍」操作應該是目前用到最多的快捷鍵組合了。
數據透視表是快速數據分析的不二之選,主要操作為分組計算,當然利用「切片」工具來動態展示數據也是可以的(數據透視表也可以用來做動態儀錶盤)。
VBA
如果不想讓一個重複的枯燥的動作重複幾百上千次,那麼VBA編程是一個比較好的解決方案,編程的目的主要在於自動化和定製化,VBA編程相對簡單易學(甚至有的崗位就是專門開發VBA模塊的)。
薦書:
誰說菜鳥不會數據分析,張文霖;
點評:數據分析入門不錯的書,小蚊子老師的博客上也有蠻多乾貨的;
Excel疑難千尋千解(套裝);
點評:ExcelHome,ExcelTip兩個論壇出的書質量都非常好,該套裝基本是「行走江湖」必備,涉及函數、VBA、操作、數據透視表等;
Excel圖表之道,劉萬祥;
點評:最早是從博客上了解到劉老師(博客為「劉萬祥ExcelPro」),那時才發現Excel也可以做出非常高大上的商務圖;
左手數據,右手圖表,徐軍泰;
點評:該書主要講動態圖,也就是可以有交互操作的圖表,第一份工作的時候參考此書做了一個半自動化的Excel監控模板,受益頗多;
別怕,Excel VBA其實很簡單,Excel Home;
點評:結構清晰,行文有趣,有編程基礎的話,很容易讀懂。
2. SQL
數據一般可分為3類:
- 結構化數據,e.g.平時見到的類似Excel表格那樣的數據;
- 半結構化數據,存在父子節點的數據,e.g. XML, HTML, json格式的數據;
- 非結構化數據,e.g. 文本、圖片、音頻、視頻等;
數據分析「直接」使用的數據大多數都為結構化數據,這些數據通常都存在資料庫里(SQLServer, Mysql, Oracle, Hive等),而要提取這些數據,SQL必不可少。
常見的SQL操作分為:
- 讀,即select語句,可以分為select, from, where, group by 4個模塊;
- 寫,即create(新建), insert(插數), drop(刪除)。
常見的數據類型有:
- 數值,e.g. int, bigint, bool, float, decimal等;
- 字元串,e.g. char, varchar, string等;
- 日期,e.g. date, datetime, timestamp等;
對應這3類數據類型的函數需要熟練掌握。
此外,還有兩類必須掌握的函數:
1. 聚合函數,也稱為「聚集函數」,常用的有:count, sum, avg, max, min, group by ;
2. 窗口函數,即對一組值進行操作(不需要使用到group by),常見的函數有(此處以Hive舉例):
- 計算:count|sum|avg|max|min over;
- 分區:partition by;
- 位置:lag, lead, first_value, last_value等;
- 排序:row_number, rank, dense_rank, ntile;
e.g. 篩選用戶最近的N單交易
row_number() over(partition by user_id order by create_time desc)
註:注意區分row_number, rank, dense_rank的差別
e.g.統計當日每小時累計交易金額
sum(orderamt) over(order by order_hour rows between unbounded preceding and current row)
更多可以參考:http://lxw1234.com/archives/tag/hive-window-functions
薦書:
SQL必知必會,Ben Forta
註:作者還有兩本《必知必會》,分別是講MySQL和Oracle PL/SQL的
3. Python/R
Python和R不僅免費,還屬於「平台模式」——來自世界各地的開發者都可以貢獻自己開發的工具包。「平台模式」帶來了大量的充滿熱情的用戶,用戶越多,軟體的生命力就越強,發展也越快,這可以看作是軟體生態的「人口紅利」。
Python和R各有優缺點和相應的適用場景,數據分析(挖掘)90%以上的場景,兩個軟體都可以覆蓋到,如果你已經在學其中一個,那就努力學好直至精通就行。
數據分析軟體的學習框架都很相似,如下是個人總結的Python學習框架(僅供參考)。
註:更多可參考 編程學習建議
註:Python學習框架
入門資料推薦:
Python
- Python基礎編程,Magnus Lie Hetland;
- 像計算機科學家一樣思考Python,Allen B. Downey;
- 官方文檔,包括其他常用數據分析module的官方文檔(很多教程就是根據官方文檔改編過來的);
R
- R語言實戰,Robert I. Kabacoff
- Advanced R,Hadley Wickham
- Cran Task Views: https://cran.r-project.org/web/views/
註:更多關於RPython的文章可以關注朋友Sim的公眾號——」每天進步一點點2015「
4. SPSS
如果是業務人員要做數據分析,在編程上的要求就沒有那麼高,但又要做一些基礎的分析,那麼SPSS是需要學的。
薦書:
- SPSS統計分析基礎教程,張文彤;
- SPSS統計分析高級教程,張文彤;
- IBM SPSS數據分析與挖掘實戰案例精粹,張文彤,鍾雲飛;
註:該書的內容編排、案例以及提供的參考資料都非常好,雖然是用SPSS實現,但分析思路仍很值得參考;
- Discovering Statistics Using IBM SPSS Statistics, Andy Field;
註:作者的官網為 https://www.discoveringstatistics.com/,Discovering Statistics系列還有講R和SAS的兩本書,質量也應該不錯。
5. 其他
SAS 醫藥、金融類應用場景較多,如果要批量統計或出報告,Macro和GTL兩部分的內容要掌握好;
Matlab 和Mathematica、Maple並稱為三大數學軟體,常用於圖像處理、信號檢測、工程領域等,讀研時分析fMRI圖像大部分都是用Matlab操作,其開源替代方案是 Octave;
Stata 偏向經濟計量,可以編程,也支持界面化操作,但是用著總有種「不倫不類」的感覺,界面化操作沒有SPSS好用,編程的話又不如Python/R方便,而且使用場景相對來說比較小眾。
學習建議
1. 工具宜少不宜多,本人曾學過不少軟體(瞎折騰),後來發現大部分學的都沒用上(沒有應用場景)。一般來說,Excel是面向小數據和簡單的分析時用,SQL用來提數,Python/R則是遇到數據量較大或者模型更加複雜時用(不想編程可以選擇SPSS),如果是超大型數據,則要結合Hive, Spark, Storm等平台使用;
2. 帶著問題去學,「學以致用」的方法之一是「輸出倒逼輸入」,問題是我們實際遇到的,也就不用擔心學習之後找不到使用場景的問題。學習Excel的時候尤其印象深刻,從基本的數據格式到VBA都是我遇到問題後去學的,User Guide或者《入門到精通》類的書太厚了,沒必要都看一遍;
3. 教材宜精不宜廣,找一本經典教材,打好基礎,構建知識框架(主幹),然後逐步「碎片化」的、以應用為導向地學支幹的知識;
註:教材一般推薦人民郵電、電子工業、機械工業這3家出版社,如果要找英文電子書就上libgen;
4. 打好基礎,再定方向,學習軟體工具的時候要先把基礎操作打好,層層遞進,既要紮實又要有明確的方向。e.g.先學python的基礎語法,然後再有針對性對選擇學習和數據分析有關的工具包(pandas, scipy等);
註:不要為了追求高大上的效果而好高騖遠(層級越高用的場景可能就越少),所謂「屠龍之術,學而無用」(更多可參考工具思維的陷阱);
5. 整理自己的知識框架,以及重點、難點、易錯點,有體系的知識利用效率更高且更容易記住。此外,當你和別人分享你的學習經驗時,表達出來也更清晰、更有條理。
工具屬於「器」,不要沉迷於工具的使用,更重要的是「道」——對演算法的掌握(使用場景、優缺點等)、對業務的理解等。
附:數據分析常用思維
文章來源:微信公眾號「51CEO」
推薦閱讀:
※清理windows10升級後生成的windows.old目錄
※別嘴硬,你還真離不開這六個工具!
※你要的錄屏軟體都給你整理好了
※優秀的 Chrome 擴展