Jupyter+Docker玩轉《Python數據分析基礎》

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

圖1 封面

開發環境搭建

如果你還是一個不會編程的小白,那么從安裝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、第一行程序

如圖2所示,在Jupyter右側菜單的New下選擇Python3

圖2 起步

會自動進入Python的命令行交互環境,我們試著敲入第一行代碼,然后點擊工具條上的 '? Run'按鈕,馬上就可以看到執行結果。

圖3 第一行代碼

2、讀文件

數據分析的數據來源有很大頭是各種類型的文件,從文件中讀取數據是基本功,我們先嘗試自己讀一個自己編寫的文件:

(1)在Jupyter主入口的Files選項卡上選擇 New -> Text File ,輸入幾行文字,再選擇 File -> Save,會在主目錄下看到一個 'untitled.txt' 文件,這就是你剛編輯過的文件,選擇該文件,再在工具欄選擇 Rename,可以修改其名稱,我們把這個文件改名為 'abc.txt'

圖4 新建文件

(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'按鈕,就可以得到如圖5結果:

圖5 讀文件

3、上傳并處理csv文件

(1)我們按第二章開頭提供的地址,獲取一個名為supplier_data.csv的文件

(2)在Jupyter主入口的Files選項卡上選擇 Upload,會彈出文件選擇對話框,選好要上傳的文件,再點擊upload,即可將指定文件傳到Jupyter“服務器”上。

圖7 上傳文件

(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'

圖8 讀取csv文件

4、用matplotlib繪制圖表??

數據的可視化是我們做數據分析的重要組成部分,用Jupyter + matplotlib也可以輕松的完成這一工作。 我們在交互區輸入第6章6.1.3中的代碼,點擊 'Run'按鈕,一幅漂亮的折線圖就產生了。

圖9 matplotlib

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

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

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容