
如何使用 Python 開始建立你的數據分析項目
現在有很多博文對復雜的機器學習算法和前沿的技術進行了展示,而這也促使數據科學家們慢慢變成了“社交控”(FOMO)。但數據分析的基本內容究竟是什么樣的?你應當怎樣安排項目結構?你需要使用什么樣的工具?等等諸如此類的問題卻鮮有人問津。本文將會對如何建立項目提供一些啟發思路,以幫助你快速達到 在數據科學領域能有所產出 的境界。
項目結構
項目的結構總是為了契合人們的需求而得到不斷完善,這會導致在一個團隊中出現不同的項目構架。如果你或者團隊中的其他人能夠及時發現項目結構的重要性,并且這個概念在團隊中得到推廣,那么,你無疑是幸運的。
多年前作者偶然發現了 R 語言的項目模板 網站。從那之后,作者便一直提倡身邊的人使用規范的項目結構。最近,DrivenData 發布了更為普適的 Cookiecutter Data Science 來構建項目結構。
而這些網站在項目構建方面的思路大致如下:
一個連貫且組織良好的結構,以便于人們協作
你的分析應當可復現,而你的項目結構可以滿足這個需求
不應該從原始數據作為出發點開始你的項目,而應當假設原始數據不變,創建其他派生的文件
作者簡略的項目結構如下所示:
example_project/
├── data/ <- The original, immutable data dump.
├── figures/ <- Figures saved by notebooks and scripts.
├── notebooks/ <- Jupyter notebooks.
├── output/ <- Processed data, models, logs, etc.
├── exampleproject/ <- Python package with source code.
│ └── __init__.py <-- Make the folder a package.
└── process.py <-- Example module.
├── tests/ <- Tests for your Python package.
└── test_process.py <-- Tests for process.py.
├── environment.yml <- Virtual environment definition.
├── README.md <- README with info of the project.
└── setup.py <- Install and distribute your module.
你可以在 這里 看到相關實例。
項目通常遵循另一種結構:
原始數據不變,存儲在 data/中;
數據處理和相關輸出圖分別存儲在不同的文件夾下,例如:figures/和output/;
筆記文件存儲在notebooks/;
項目信息撰寫在README.md中;
項目代碼放置在獨立的文件夾下。
實際上,你選擇什么樣的項目結構并不重要,只要它能符合你的工作流程,你也能堅持使用它。你應該嘗試去理解何為項目,從而選擇滿足要求的項目結構。
虛擬環境
項目之間應當相互獨立,你肯定不希望新的項目打亂了之前的工作成果。我們可以通過把不同項目的文件存儲在不同的文件夾下實現獨立性,但是不同項目之間也應當使用不同的 Python 環境。
虛擬環境依賴于不同的項目而相互獨立,避免了包的沖突問題。每個虛擬環境都安裝了特定版本的不同包。虛擬環境一中安裝了版本為 1.11 的numpy庫和版本為 0.18 的pandas庫,而虛擬環境二中則僅僅安裝了版本為 0.17 的pandas庫。作者選取適用于數據科學的 conda 管理虛擬環境(可在 這里 看到選擇它的原因)。
下列命令可以創建一個使用 Python 3.5 的新的 conda 虛擬環境,命名為 example_project:
$ conda install --name example_project python=3.5
激活虛擬環境( Windows 系統下將 source 省去):
$ source activate example_project
之后便可以安裝所需的包了:
$ conda install pandas numpy jupyter scikit-learn
當你在不同的項目間跳轉時,可以運行source deactivate命令取消激活,并激活新的項目虛擬環境。
一旦你熟練使用activate和deactivate命令,就會發現虛擬環境是一個很輕巧的工具來保證 Python 環境的獨立。通過導出環境定義文件(例如,所有安裝的包名和版本號),你的項目就很容易得到復現了。如果你想查看更多細節,可在Tim Hopper 的博文 中看到。
Git
每個項目都應該有自己的 Git 資源庫。在每個項目創建一個資源庫可以幫助你追蹤每個項目的歷史和解決在不同的項目間復雜的版本依賴問題。
又或者,你可以選擇在一個資源庫中包含多個項目,將所有內容存儲在一個位置。這樣做的缺點在于往往會因為合并沖突問題而告終(數據科學家通常并不能熟練使用 Git )。除了很多使用 Git 時出現的問題,這也會導致你的項目之間缺乏獨立性。
創建 Git 資源庫最簡單的方法就是在你的 Git 遠程主機托管服務(例如,Github 和 GitLab )上創建一個新的 Git 資源庫,然后把它復制到本地:
$ git clone https://github.com/hgrif/example-project.git
你可以在這個空文件夾下構建你的項目結構。
如果你按照這個步驟執行,并準備在一個新文件夾下創建一些文件了。那么,你首先還需要在電腦上對 git 資源庫進行初始化:
$ git init
然后在你的遠程主機上創建一個新的 git 資源庫,得到它的鏈接,并運行下列命令:
$ git remote add origin https://github.com/hgrif/example-project.git
該命令會添加鏈接為 https://github.com/hgrif/example-project.git 的遠程資源庫,并命令為 origin 。你可能需要把現有的 master分支推送到origin上:
$ git push --set-upstream origin master
在你的項目目錄下創建.gitignore文件可以避免將圖或數據誤填加進資源庫中。作者一般使用 針對 Python 的.gitignore文件 ,并且在文件中加入 data/、figures/ 和 output/ 文件夾,以便 Git 可以忽略它們。
既然 Git 已經設置好了,你就可以對核心內容使用git add和git commit命令了!
使用工具
使用一些工具可以幫助你擺脫那些重復性工作。
Python 中的cookiecutter包可根據模板自動創建項目文件夾。你可以使用現有的模板,例如,Cookiecutter Data Science 或者 作者的項目結構模板 ,或是創建你自己新的模板。
使用虛擬環境最好的方法就是選用支持它們的編輯器,比如:PyCharm 。你也可以使用 autoenv 或者 direnv 去激活虛擬環境,并設置環境的變量,如果你cd定位到一個工作目錄下的話。
結論
對你的數據科學項目有一個良好的設置將會有助于同其他人協作,并且項目本身也會更容易復現。一個好的項目結構,一個虛擬環境和一個 git 資源庫是每個數據科學項目的基石。
數據分析咨詢請掃描二維碼
若不方便掃碼,搜微信號:CDAshujufenxi
CDA數據分析師證書考試體系(更新于2025年05月22日)
2025-05-26解碼數據基因:從數字敏感度到邏輯思維 每當看到超市貨架上商品的排列變化,你是否會聯想到背后的銷售數據波動?三年前在零售行 ...
2025-05-23在本文中,我們將探討 AI 為何能夠加速數據分析、如何在每個步驟中實現數據分析自動化以及使用哪些工具。 數據分析中的AI是什么 ...
2025-05-20當數據遇見人生:我的第一個分析項目 記得三年前接手第一個數據分析項目時,我面對Excel里密密麻麻的銷售數據手足無措。那些跳動 ...
2025-05-20在數字化運營的時代,企業每天都在產生海量數據:用戶點擊行為、商品銷售記錄、廣告投放反饋…… 這些數據就像散落的拼圖,而相 ...
2025-05-19在當今數字化營銷時代,小紅書作為國內領先的社交電商平臺,其銷售數據蘊含著巨大的商業價值。通過對小紅書銷售數據的深入分析, ...
2025-05-16Excel作為最常用的數據分析工具,有沒有什么工具可以幫助我們快速地使用excel表格,只要輕松幾步甚至輸入幾項指令就能搞定呢? ...
2025-05-15數據,如同無形的燃料,驅動著現代社會的運轉。從全球互聯網用戶每天產生的2.5億TB數據,到制造業的傳感器、金融交易 ...
2025-05-15大數據是什么_數據分析師培訓 其實,現在的大數據指的并不僅僅是海量數據,更準確而言是對大數據分析的方法。傳統的數 ...
2025-05-14CDA持證人簡介: 萬木,CDA L1持證人,某電商中廠BI工程師 ,5年數據經驗1年BI內訓師,高級數據分析師,擁有豐富的行業經驗。 ...
2025-05-13CDA持證人簡介: 王明月 ,CDA 數據分析師二級持證人,2年數據產品工作經驗,管理學博士在讀。 學習入口:https://edu.cda.cn/g ...
2025-05-12CDA持證人簡介: 楊貞璽 ,CDA一級持證人,鄭州大學情報學碩士研究生,某上市公司數據分析師。 學習入口:https://edu.cda.cn/g ...
2025-05-09CDA持證人簡介 程靖 CDA會員大咖,暢銷書《小白學產品》作者,13年頂級互聯網公司產品經理相關經驗,曾在百度、美團、阿里等 ...
2025-05-07相信很多做數據分析的小伙伴,都接到過一些高階的數據分析需求,實現的過程需要用到一些數據獲取,數據清洗轉換,建模方法等,這 ...
2025-05-06以下的文章內容來源于劉靜老師的專欄,如果您想閱讀專欄《10大業務分析模型突破業務瓶頸》,點擊下方鏈接 https://edu.cda.cn/g ...
2025-04-30CDA持證人簡介: 邱立峰 CDA 數據分析師二級持證人,數字化轉型專家,數據治理專家,高級數據分析師,擁有豐富的行業經驗。 ...
2025-04-29CDA持證人簡介: 程靖 CDA會員大咖,暢銷書《小白學產品》作者,13年頂級互聯網公司產品經理相關經驗,曾在百度,美團,阿里等 ...
2025-04-28CDA持證人簡介: 居瑜 ,CDA一級持證人國企財務經理,13年財務管理運營經驗,在數據分析就業和實踐經驗方面有著豐富的積累和經 ...
2025-04-27數據分析在當今信息時代發揮著重要作用。單因素方差分析(One-Way ANOVA)是一種關鍵的統計方法,用于比較三個或更多獨立樣本組 ...
2025-04-25CDA持證人簡介: 居瑜 ,CDA一級持證人國企財務經理,13年財務管理運營經驗,在數據分析就業和實踐經驗方面有著豐富的積累和經 ...
2025-04-25