數(shù)據(jù)分析入門常見問題匯總

簡書不維護了,歡迎關(guān)注我的知乎:波羅學(xué)的個人主頁

本文由 泰閣志-解密大數(shù)據(jù) 共創(chuàng)課程出品

非常感謝余老師為大家總結(jié)的常見問題FAQ。

關(guān)于環(huán)境與CODING

1. 什么是終端(命令行窗口)?在哪里打開?

終端是一個基于文本的用來查看、 處理、 和操作您的計算機上的文件的應(yīng)用程序。
打開方法:Windows系統(tǒng),在程序中查找 cmd; Mac系統(tǒng),在Spotlight中查找terminal。
更多內(nèi)容可參考 命令行界面簡介

2. 在官網(wǎng)下載 anaconda 很慢,下不下來怎么辦?

(感謝李斯龍同學(xué)提供的解決方案)
使用國內(nèi)鏡像地址下載:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/

3. 安裝完anaconda,在命令行中輸入 conda upgrade -all 后,顯示找不到 conda 命令怎么辦?

(感謝李佳同學(xué)提供的答案)
一般是環(huán)境路徑設(shè)置的問題,需要添加conda環(huán)境變量:
export PATH=xxx/anaconda/bin:$PATH
將xxx替換成anaconda的安裝路徑。

4. 如何創(chuàng)建 Jupyter Notebook?為什么我打開后不能執(zhí)行代碼?

打開 Jupyter 的三種方式:

  • 找到 Jupyter Notebook 可執(zhí)行程序,并點擊打開。
  • 先打開 Anaconda Navigator, 在其中找到 Jupyter Notebook 打開。
  • 在命令行中輸入 jupyter notebook
    創(chuàng)建 notebook 的方式:
    在打開Jupyter Notebook后,進入相應(yīng)的目錄,在界面右上方點擊按鈕 New
    在下拉菜單中選擇 ’Python 2‘ 或 ’Python 3‘。
    打開后不能運行代碼,很可能是因為創(chuàng)建了文本文件,而非notebook文件。
5. windows系統(tǒng)中打開數(shù)據(jù)文件,顯示很混亂,看不清怎么辦?
  • Windows中查看文本推薦 Notepad++
  • Mac中推薦 TextWrangler。
6. 導(dǎo)入數(shù)據(jù)出錯,找不到文件怎么辦?

首先要確認(rèn)文件路徑是否寫正確,最簡單的方法是將數(shù)據(jù)和notebook文件放在同一個文件夾下,這樣導(dǎo)入數(shù)據(jù)時只需要寫數(shù)據(jù)文件名即可。

7. 當(dāng)我使用 pd.read_csv 時顯示錯誤 ’NameError: name 'pd' is not defined‘ 是怎么回事?

一般都要先導(dǎo)入相應(yīng)的Python模塊才能使用其提供的方法。這里就需要先導(dǎo)入pandas模塊,使用 import pandas as pd

8. 關(guān)于繪制直方圖,使用 plt.hist() 畫出的圖形每一豎條都是相連的,沒有豎線分隔怎么辦?

可使用參數(shù) rwidth 來設(shè)置每個豎條的寬度,這樣豎條之間就有空白可以間隔了。比如 plt.hist(data, rwidth=0.9)

9. 繪制直方圖時,中文標(biāo)題無法顯示怎么辦?

一般默認(rèn)是英文,可在繪圖前做如下設(shè)置。

plt.rcParams['font.sans-serif']=['SimHei'] #用來正常顯示中文標(biāo)簽   
plt.rcParams['axes.unicode_minus']=False #用來正常顯示負號 

如果系統(tǒng)中沒有相應(yīng)的字體,可考慮方案二
(mac系統(tǒng),由周瑞珍、李斯龍同學(xué)提供):

from matplotlib.font_manager import *
myfont = FontProperties(fname='/Library/Fonts/Lantinghei.ttc')
plt.title(u'體重直方圖',fontproperties=myfont)

Lantinghei.ttc是系統(tǒng)fonts目錄下的一個字體文件,如果該目錄下沒有這個文件也可以改成其他的中文字體文件

(Windows系統(tǒng),李佳同學(xué)提供的 matplotlib中文顯示根本的解決辦法)
進入python的安裝目錄,Lib/site-packages/matplotlib/mpl-data找到matplotlibrc配置文件

  • 打開配置文件,找到下面這行
    #font.serif : Bitstream Vera Serif, New Century Schoolbook, Century Schoolbook L, Utopia, ITC Bookman, Bookman, Nimbus Roman No9 L, Times New Roman, Times, Palatino, Charter, serif
    然后將前面的注釋符號去掉
  • 找到中文字體放到matplotlib字體庫中
    在windows文件夾下,C:/Windows/Fonts/Microsoft YaHei UI復(fù)制該字體,然后粘貼到Lib/site-packages/matplotlib/mpl-data/fonts/ttf文件夾下,并且重命名為Vera.ttf
    注釋:雅黑字體的文件后綴為ttc,可更改為ttf。至于為什么要重命名,這一步實際上是把matplotlib中一個默認(rèn)的字體替換為復(fù)制過來的中文字體。
    其他的根本解決問題的方案我都測試過并沒有效果,這個方法是目前解決最徹底,對我有效的解決方式,你也可以試一試
10. 繪制直方圖,設(shè)置中文標(biāo)題時,顯示錯誤 ’SyntaxError: invalid character in identifier‘ 是怎么回事?

代碼一般都是英文輸入,當(dāng)與中文混排時,特別要注意中英文的切換,該同學(xué)使用了中文輸入法下的括號,導(dǎo)致出錯。

11. 下載Anaconda后無法安裝怎么辦?
  • 首先確定安裝的版本與系統(tǒng)配置是否一致;
  • 其次查看下載的是圖形界面安裝包還是命令行安裝包,兩者的安裝方式不一樣;
  • 第三,查看下載的安裝包大小與官網(wǎng)給出的大小是否一致,很可能沒下載完成。如果是情況三,建議使用國內(nèi)鏡像下載,回到問題2查看鏡像地址。

關(guān)于數(shù)據(jù)科學(xué)

1. 什么是數(shù)據(jù)科學(xué)(Data Science)?

數(shù)據(jù)科學(xué)是用科學(xué)的方法從各種結(jié)構(gòu)化、非結(jié)構(gòu)化數(shù)據(jù)中提取有用信息的一門交叉學(xué)科。通過數(shù)據(jù)收集、清洗、分析、可視化等過程,用數(shù)據(jù)來回答特定領(lǐng)域的問題。它涉及多個領(lǐng)域的技術(shù)和理論,包括數(shù)學(xué)、統(tǒng)計、信息科學(xué)、計算機科學(xué),尤其是機器學(xué)習(xí)、數(shù)據(jù)挖掘、數(shù)據(jù)庫、可視化等分支領(lǐng)域。(參考維基百科)

2. 數(shù)據(jù)科學(xué)中都有哪些職業(yè)角色?
  • 數(shù)據(jù)科學(xué)家(data scientists):有人這樣描述數(shù)據(jù)科學(xué)家, 他們比統(tǒng)計學(xué)家更懂編程,而比軟件工程師更懂統(tǒng)計。雖然數(shù)據(jù)科學(xué)家和數(shù)據(jù)分析師有相同的工作目標(biāo),即從大量數(shù)據(jù)中發(fā)掘價值,但顯然數(shù)據(jù)科學(xué)家需要更精湛的技能,他們能完成端到端的數(shù)據(jù)科學(xué)項目,建立并微調(diào)數(shù)據(jù)分析的各類模型,并能從事開放問題的研究等等。

  • 數(shù)據(jù)分析師(data analysts):他們研究數(shù)據(jù)并提供相應(yīng)的報告或可視化圖表。可以將數(shù)據(jù)分析師看作數(shù)據(jù)科學(xué)家的低配版,即初級數(shù)據(jù)科學(xué)家,一般是從事數(shù)據(jù)科學(xué)工作的第一步。數(shù)據(jù)分析師不需要具備高深的研究背景來發(fā)明新算法,但是他們要熟練掌握現(xiàn)有工具來解決問題。

  • 數(shù)據(jù)工程師(data engineers):他們是軟件工程師的一種,為數(shù)據(jù)科學(xué)家們提供軟件基礎(chǔ)設(shè)施服務(wù),建設(shè)強壯的數(shù)據(jù)管道來清洗、轉(zhuǎn)移、聚合多種雜亂無章的數(shù)據(jù),并存放到特定的數(shù)據(jù)庫中。他們需要管理數(shù)據(jù)庫系統(tǒng),寫復(fù)雜的查詢語句來抽取數(shù)據(jù),維護多臺服務(wù)器,懂得Hadoop等分布式系統(tǒng)。

    參考:3 Data Careers Decoded and What It Means for You

3. 數(shù)據(jù)科學(xué)的工作流程是怎樣的?

雖然數(shù)據(jù)分析是一個不斷迭代的過程,而且不同的步驟會有些交叉,但我們依然可以將該過程簡化為以下7個步驟:

  1. 明確問題
  2. 收集原始數(shù)據(jù)
  3. 數(shù)據(jù)清洗
  4. 數(shù)據(jù)探索
  5. 應(yīng)用模型進行深度分析
  6. 傳達分析結(jié)果
  7. 使分析過程可再現(xiàn)

在一個數(shù)據(jù)項目中,我們絕大多數(shù)的努力一般都將花費在獲取和清洗數(shù)據(jù)(步驟2-3)以及展示分析結(jié)果和過程(步驟6-7)上。

參考:Data science done well looks easy

4. 從事數(shù)據(jù)科學(xué)所需要掌握的技能都有哪些?

要從事數(shù)據(jù)科學(xué),我們需要從數(shù)學(xué)知識、計算機知識、專業(yè)知識這三個維度來考慮。

  • 具有分析思維。
  • 基本的大學(xué)數(shù)學(xué)知識,包括微積分和線性代數(shù)。
  • 統(tǒng)計學(xué)知識,包括描述統(tǒng)計學(xué)和推論統(tǒng)計學(xué)。
  • 編程基礎(chǔ),如Python、R語言、SQL語句。
  • 算法知識,如回歸、分類、聚類算法等。
  • 數(shù)據(jù)可視化,將你的分析結(jié)果展示出來。
  • 領(lǐng)域?qū)I(yè)知識,如商業(yè)知識、生物學(xué)知識等,視具體分析的問題而定。

更詳細的技能清單請參考 Ultimate Skills Checklist for Your First Data Analyst Job


關(guān)于工具

1. 數(shù)據(jù)分析的常用工具都有哪些?
  • SQL:從數(shù)據(jù)庫中抽取數(shù)據(jù)的程序語言,是數(shù)據(jù)科學(xué)的必備技能。
  • Excel:容易上手,所見即所得,無需編程即可對數(shù)據(jù)進行運算和作圖。
  • R:專門為數(shù)據(jù)科學(xué)而設(shè)計的語言,在數(shù)據(jù)科學(xué)領(lǐng)域比Python略微受歡迎些。
  • Python:簡單易學(xué),功能強大且豐富,是大學(xué)教學(xué)中最受歡迎的編程語言。
  • Spark:專為大規(guī)模數(shù)據(jù)處理而設(shè)計的基于內(nèi)存計算的引擎。
  • Tableau:幫人們查看并理解數(shù)據(jù),可進行快速分析、可視化并分享結(jié)果。
  • 其他:Perl,Matlab,C#,Mahout,Hadoop,Java

以上工具按使用占比排名,數(shù)據(jù)來源: 2015 Data Science Salary Survey

2. 我該采用哪種編程語言做數(shù)據(jù)分析呢?Python 還是 R ?

Python和R語言都是數(shù)據(jù)科學(xué)中常用的編程語言,時常有關(guān)于該使用哪一種語言的爭論,但真是仁者見仁智者見智了。作為一名出色的數(shù)據(jù)科學(xué)家,兩種語言都應(yīng)該掌握。但作為初學(xué)者該先學(xué)哪一種語言呢?我們推薦Python,下面列出了這Python和R的比較,供您參考。

  • 使用人群:程序員使用Python較多,而研究人員多使用R語言。
  • 句法:Python具有類似英語的句法結(jié)構(gòu),使得代碼更易理解。R的句法與其他程序語言有些區(qū)別,不太常見,對有一定編程基礎(chǔ)的同學(xué)容易造成理解障礙。
  • 學(xué)習(xí)曲線: 由于以上句法的原因,R 比 Python 難學(xué)一點。Python非常適合編程入門的學(xué)習(xí)者。
  • 熱門程度:在Github上最受歡迎的程序語言排名中,Python總是位列前五,而R語言則徘徊在前10以外。
  • 數(shù)據(jù)分析工具包:Python作為多用途的程序語言,在數(shù)據(jù)分析工具包方面的確做的沒有R語言好。但是Python也有像Pandas這樣專門用于數(shù)據(jù)分析的模塊。
  • 薪水:平均來看,使用R語言的數(shù)據(jù)科學(xué)家平均薪水比使用Python的高。(但注意這只是相關(guān)性,并不一定存在因果關(guān)系。)
3. Python的版本該如何選擇?

目前Python有兩類版本,Python 2.7.x 和 Python 3.x,大部分的Python庫都同時支持這兩者。大多數(shù)情況下 Python 2.7 的代碼都能在Python 3 中運行,不過要注意 print 語句。當(dāng)然大部分新引入Python 3 的特性則不會反向集成到 Python 2.7中。

在這里推薦使用 Python 3,理由如下:

4. 用Python做數(shù)據(jù)分析,有哪些入門資料推薦?

在線視頻教程推薦:

書籍推薦:

  • 《利用Python進行數(shù)據(jù)分析》
  • 《統(tǒng)計思維 》(免費英文版
5. 有什么簡單的方法安裝Python嗎?

推薦安裝 Anaconda,它是一個開源的Python發(fā)行版本,包含了conda、Python等180多個科學(xué)包及其依賴項。使用Anaconda的好處是安裝簡單,并且無需為眾多的工具包和安裝環(huán)境而煩擾。

6. 我想將自己的數(shù)據(jù)分析過程分享給大家,有什么好的工具嗎?

推薦Jupyter Notebook,這是一款展示數(shù)據(jù)分析過程的利器。不僅能在文檔中執(zhí)行Python代碼,更可以將文本、數(shù)學(xué)公式、代碼、圖表編輯在同一文件中,用web網(wǎng)頁的形式展現(xiàn)出來。

如果你安裝了Anaconda,則自動包含了Jupyter。如果在conda環(huán)境下,使用如下方式安裝:

conda install jupyter notebook

也可以通過pip安裝:

pip install jupyter notebook
7. Python 中都有哪些常用的數(shù)據(jù)分析工具包?
  • numpy: 是一個用Python實現(xiàn)的科學(xué)計算包,提供許多高級的數(shù)值編程工具,如矩陣表示、矢量計算以及精密計算庫。

  • pandas: 是Python的一個數(shù)據(jù)分析包,提供了高效且易用的數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)分析工具。

  • matplotlib: 是一個Python的2D繪圖庫,可以生成出版質(zhì)量級別的圖像。

  • scipy:用于科學(xué)和工程計算的Python軟件庫。

  • scikit-learn:用于機器學(xué)習(xí)的軟件庫。

8. 有什么好用的代碼編輯器推薦嗎?
9. 常見的數(shù)據(jù)文件格式有哪些?
  • CSV:全稱 Comma Separated Values,即用逗號分隔的數(shù)據(jù)文件,可以使用Excel打開,也可以用Python或R讀入成數(shù)據(jù)框(dataframe)。
  • JSON:全稱 Javascript Object Notation,是便于人和機器讀取的輕量數(shù)據(jù)交換格式。Web服務(wù)經(jīng)常采用此格式來傳遞數(shù)據(jù)。
  • SQL:全稱Structured Query Language,用于查詢關(guān)系型數(shù)據(jù)庫表。

關(guān)于統(tǒng)計分析

1. 做數(shù)據(jù)分析,需要掌握哪些必備的統(tǒng)計學(xué)知識?
  • 描述統(tǒng)計學(xué)
  • 平均值、中位數(shù)、眾數(shù)
  • 方差、標(biāo)準(zhǔn)差
  • 統(tǒng)計分布: 正態(tài)分布、指數(shù)分布、二項分布、卡方分布
  • 推論統(tǒng)計學(xué)
  • 假設(shè)檢驗
  • 置信區(qū)間
  • 顯著性測試
  • 實驗設(shè)計
  • A/B測試
  • 實驗條件控制
  • 雙盲測試
  • 冪律分布

關(guān)于提問的建議:

1. 獨立思考

遇到問題時,首先自己獨立思考,通過回顧課件、動手實踐來找答案。需要注意的是不要關(guān)注錯了問題的焦點,有時候問題的解決方法不一定在你原先認(rèn)為的方向上。

2. 求助網(wǎng)絡(luò)

自己想不出來時,求助網(wǎng)絡(luò)。使用Google網(wǎng)上搜索,當(dāng)中文找不到結(jié)果時,采用英文搜索。對于代碼錯誤,可以直接將錯誤提示拷貝到Google中搜索。 要相信:你所遇到的問題大部分都已經(jīng)被他人解決過了。

3. 社群討論

向網(wǎng)絡(luò)求助無效,并在查看了我們社區(qū)建立的答疑討論區(qū)以及FAQ后,仍無結(jié)果,那么非常歡迎在答疑討論區(qū)拋出你的問題。

4. 總結(jié)記錄

在問題解決后,并非萬事大吉,你需要將問題以及解決辦法總結(jié)寫下來,避免以后遇到類似的問題。更歡迎寫成心得文章投稿到簡書的“解密大數(shù)據(jù)”專題。

致謝:
最后還是非常感謝解密大數(shù)據(jù)社群的小伙伴們的支持和鼓勵,讓我們一起成長。

解密大數(shù)據(jù)社群公眾號
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容