Jupyter+Docker玩轉《Python資料分析基礎》

阿狸不歌發表於2017-10-04

近年來,資料分析師成為了一個高薪而又熱門的職業,如果你想跨入這一行又沒什麼程式設計基礎,那麼學習Python絕對是一個好的選擇。因為Python的程式碼風格使程式碼更易於閱讀和理解,和其他語言相比,其學習曲線沒有那麼陡峭。Python的一系列豐富的內建庫和附加庫可以方便地完成許多一般的資料處理和分析操作,讓你可以輕鬆地一站式完成資料處理與分析任務,從而大大減輕程式設計的工作量。

Python資料分析基礎封面


開發環境搭建

如果你還是一個不會程式設計的小白,那麼從安裝python到下載各種包再到執行起程式的整個過程都夠讓你喝一壺的了。《Python資料分析基礎》書中推薦了Anaconda Python,不過筆者認為安裝Anaconda Python依然略顯繁瑣,下面是筆者總結的只需要三步就能玩轉《Python資料分析基礎》的具體步驟:

1、安裝Docker

Docker是什麼?可參考拙作《離不開的工具之Docker開發指南》,簡單講是一個用於環境封裝的工具(集裝箱)。如果沒精力去了解也沒關係,你只需要知道Docker用起來很方便就行了。Windows使用者 從https://www.docker.com/docker-windows下載,Mac使用者從https://www.docker.com/docker-mac下載,只需輕點Download Now from Docker Store按鈕,按部就班的等待安裝完成即可。

2、下載jupyter/scipy-notebook的Docker映象

Jupyter是什麼?Jupyter是一個互動式筆記本(大名鼎鼎的 IPython notebook 是它的原名,大部分入門型的Python書裡都會提到它,本書也不例外)。用Jupyter寫程式碼可以自動補全,比記事本高到不知哪裡去了,每一段程式碼(cell)的執行結果能可以根據你的需要(程式碼)以文字、表、圖等方式展現出來,而且會像真正的筆記本一樣把結果保留在頁面上,以便縱向對比。

然而Jupyter現在已經不只是Python的編輯器這麼簡單了,實際上它支援40多種程式語言,比如R、Ruby、Javascript、C#、Go、Scala、Erlang、以及新興的Julia等…… ,根據任務和程式語言的不同,jupyter提供多種了預先打包好的官方映象(https://hub.docker.com/r/jupyter/),和資料分析和科學計算有關的主要有兩個映象:1、scipy-notebook(https://hub.docker.com/r/jupyter/scipy-notebook/),是純Python3.x環境;2、datascience-notebook(https://hub.docker.com/r/jupyter/datascience-notebook/)預裝了Python、R、Julia,適合更高階的混合式開發。對於本書而言,完成所有的教程只需要安裝scipy-notebook映象,該映象已經預裝了本書所有用到的資料分析庫。

介紹了這麼多,到底怎麼下載呢?其實很簡單,只需要敲入一行命令即可 ——

docker pull jupyter/scipy-notebook

3、執行jupyter/scipy-notebook

用docker下載完 scipy-notebook 映象後,我們敲入以下指令 ——

docker run -it --rm -p 8888:8888 jupyter/scipy-notebook

稍等一下,就會給出提示:

Copy/paste this URL into your browser when you connect for the first time, to login with a token:

http://localhost:8888/?token=84222a835fff50f7sssss9c8bb4a45a2e13dd387a86zzz

我們這時候只需要把最後那一行地址拷貝到瀏覽器,就可以見到一個搭建好的互動式Python資料分析開發環境了!是不是很簡單?


資料分析起步

1、第一行程式

如圖所示,在Jupyter右側選單的New下選擇Python3 第一步:開啟python命令列

會自動進入Python的命令列互動環境,我們試著敲入第一行程式碼,然後點選工具條上的 '⏯ Run'按鈕,馬上就可以看到執行結果。 第一行程式碼


2、讀檔案

資料分析的資料來源有很大頭是各種型別的檔案,從檔案中讀取資料是基本功,我們先嚐試自己讀一個自己編寫的檔案:

  • (1)在Jupyter主入口的Files選項卡上選擇 New -> Text File ,輸入幾行文字,再選擇 File -> Save,會在主目錄下看到一個 'untitled.txt' 檔案,這就是你剛編輯過的檔案,選擇該檔案,再在工具欄選擇 Rename,可以修改其名稱,我們把這個檔案改名為 'abc.txt'enter image description here
  • (2)在程式互動區域,輸入如下程式碼 ——

input_file = 'abc.txt'

print("Output #144:")

with open(input_file, 'r', newline='') as filereader:

for row in filereader:

    print("{}".format(row.strip()))
  • (3)點選 'Run'按鈕,就可以得到如下結果 程式1

3、上傳並處理csv檔案

  • (1)我們按第二章開頭提供的地址,獲取一個名為supplier_data.csv的檔案
  • (2)在Jupyter主入口的Files選項卡上選擇 Upload,會彈出檔案選擇對話方塊,選好要上傳的檔案,再點選upload,即可將指定檔案傳到Jupyter“伺服器”上。 上傳
  • (3)在程式互動區,輸入如下程式碼

import sys import pandas as pd

input_file = 'supplier_data.csv'

output_file = 'abc.csv'

data_frame = pd.read_csv(input_file)

print(data_frame)

data_frame.to_csv(output_file, index=False)

  • (4)點選 'Run'按鈕,就可以看到格式化好的資料。並且在Jupyter的檔案區我們還可以看到一個新生成的檔案'abc.csv' 程式2

4、用matplotlib繪製圖表?

資料的視覺化是我們做資料分析的重要組成部分,用Jupyter + matplotlib也可以輕鬆的完成這一工作。 我們在互動區輸入第6章6.1.3中的程式碼,點選 'Run'按鈕,一幅漂亮的折線圖就產生了。 程式3


總結:《Python資料分析基礎》確實書如其名,非常的基礎,可以把一個程式小白,手把手的帶入資料分析的世界。

而我們利用Jupyter+Docker可以更加省去很多繁瑣的安裝/配置環節,更快的實現Python資料分析入門。

相關文章