作為數據分析師的你都有哪些常用工具

本文總結數據分析常用的軟體,以及推薦相應的學習參考資料。

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)

更多可以參考:lxw1234.com/archives/ta

薦書:

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: cran.r-project.org/web/

註:更多關於RPython的文章可以關注朋友Sim的公眾號——」每天進步一點點2015「

4. SPSS

如果是業務人員要做數據分析,在編程上的要求就沒有那麼高,但又要做一些基礎的分析,那麼SPSS是需要學的。

薦書:

  • SPSS統計分析基礎教程,張文彤;

  • SPSS統計分析高級教程,張文彤;
  • IBM SPSS數據分析與挖掘實戰案例精粹,張文彤,鍾雲飛;

註:該書的內容編排、案例以及提供的參考資料都非常好,雖然是用SPSS實現,但分析思路仍很值得參考;

  • Discovering Statistics Using IBM SPSS Statistics, Andy Field;

註:作者的官網為 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 擴展

TAG:數據分析 | 實用工具 |