當前位置︰首頁 > 新聞資訊 > 正文

10個小技巧加速數據分析2019-08-23 11:00:45 | 編輯︰hely | 查看︰ | 評論︰0

劃重點!!!本文列舉了一些使用Python和Jupyter Notebook的技巧,討論了如何輕松分析數據以及如何進行格式化編碼、輸出和調試等操作。

劃重點!!!本文列舉了一些使用Python和Jupyter Notebook的技巧,討論了如何輕松分析數據以及如何進行格式化編碼、輸出和調試等操作。
 

 

在編程領域,有時一個小技巧就能節省大量時間,甚至能起到救命的效果。這些“必殺技”往往能在未來的數據分析中發揮重大作用。

1. 分析Pandas數據框架

Profiling(分析)是一個幫助理解數據的過程,Pandas Profiling(數據預覽分析)作為一個python工具包,就是用來幫助理解數據的。該工具能夠簡單快速地對熊貓數據框架進行探索性數據分析。pandas df.describe()和df.info()functions通常是EDA過程的第一步。然而,這個步驟只提供一個基本的數據預覽,對大型數據集幫助不大。另外,Pandas Profiling功能使用df.profile_report()擴展了熊貓數據框架,可以快速進行數據分析。該功能僅用一行代碼就可以顯示很多信息,這也可以應用在交互式的HTML報告中。

對于給定數據集,數據預覽分析包會處理以下數據︰

 

 

Pandas Profiling工具包計算的統計數據

安裝

 

 

使用

用古老的大數據集來演示python profiler的功能。

 

 

最近,Pandas-Profiling發布了一個重要的2.0.0升級版本。事實上,該版本對語法作了一點改變,這個功能也已經包含在熊貓數據框架中了,報告也變得更加全面。以下是最新的語法用法︰

使用

要在Jupyter筆記本中顯示報告,並運行︰

 

 

這一行代碼就是用戶在Jupyter筆記本中顯示數據分析報告所需的全部內容。顯示的報告非常詳細,必要時還包括圖表。

 

 

通過下列代碼用戶還可以將該報告導出到交互式HTML文件中︰

 

 

 

 

更多詳細信息和示例︰https://pandas-profiling.github.io/pandas-profiling/docs/

2. 增強Pandas plots的互動性

Pandas有一個內置的 .plot() 功能,是數據框架類的一部分。然而,該功能不盡人意的地方在于呈現的可視化不是交互式的。相反,用pandas.DataFrame.plot()功能繪制圖表就很容易。如果不對代碼做重大修改,可以繪制出像熊貓圖表一樣的交互式圖表嗎?答案是可以的,Cufflinks庫能夠幫助做到這一點。

Cufflinks庫將plotly的功能與Pandas的靈活性結合起來,使繪圖簡單化。現在就來看看如何安裝這個庫,並讓它在pandas上運行。

 

 

 

 

 

 

 

 

右邊的可視化顯示的是靜態圖表,而左邊則是交互式圖表,更為詳細。這些圖表在語法上都沒有作出重大改變。

更多示例︰https://github.com/santosjorge/cufflinks/blob/master/Cufflinks%20Tutorial%20-%20Pandas%20Like.ipynb

3. 少許魔法

魔法命令(Magic commands)是Jupyter筆記本中的一組便捷功能,旨在解決標準數據分析中的一些常見問題。在 %lsmagic的幫助下,用戶可以看到所有可用的魔法功能。

 

 

所有可用魔法功能的清單

魔法命令有兩種︰行魔法,即以單個%字符為前綴,在單行輸入上操作;單元格魔法,即以%%為前綴,在多行輸入上操作。如果設置為1,則無需鍵入初始%即可調用魔術功能。

一起來看看兩種魔法命令在常見數據分析任務中的應用︰

% pastebin

%pastebin將代碼上傳到Pastebin並返回url地址。Pastebin屬于在線內容托管服務,在這里,用戶可以存儲如源代碼片段等純文本,然後與他人共享網址。事實上,Github的要點也類似于pastebin,盡管存在版權限制。

考慮一個包含以下內容的python腳本file.py︰

 

 

在Jupyter筆記本中使用 %pastebin會生成一個pastebin網址。

 

 

%matplotlib notebook

%matplotlib inline功能用于渲染Jupyter筆記本中的靜態matplotlib圖。嘗試用notebook替換inline,以輕松獲得可變焦、可調整大小的繪圖。請確保在導入matplotlib庫之前啟用該功能。

 

 

%matplotlib inline 與 %matplotlib notebook

%run

%run 功能在筆記本內部運行python腳本。

 

 

%%writefile

%%writefile 將單元格的內容寫入文件。通過該功能,代碼將被寫入一個名為foo.py的文件,並保存在當前目錄中。

 

 

%%latex

%%latex 功能將單元格內容呈現為 LaTeX格式。這對于在單元格中編寫數學公式和方程很有用。

 

 

4. 查找並消除錯誤

Interactive debugger也是一個有魔力的功能,但本文對它進行單獨分類。如果在運行代碼單元時出現異常,用戶可以在新的一行中鍵入 %debug 並恢復運行。這一操作將打開一個交互式調試環境,找到發生異常的位置。用戶還可以檢查程序中分配的變量值,並在此執行操作。點擊q即可退出調試。

 

 

5. 美觀排版

如果想建立美觀的數據結構,pprint是一個直接的模塊,在打印字典或JSON數據時特別有用。下面來看一個使用print 和 pprint 來顯示輸出的例子。

 

 

6. 筆記突出顯示

可以在Jupyter筆記本中使用alert/Note boxes來標記一些重要的或需要突出的內容。筆記的顏色取決于突出內容的重要程度。用戶只需在需要突出顯示的單元格中添加以下任意或所有代碼。

 

 

7. 打印單元格的所有輸出

例如包含以下代碼行的Jupyter筆記本單元格︰

 

 

只打印最後一個輸出是單元格的正常屬性,而其他輸出,則需要添加 print()功能。事實證明,只要在筆記本頂部添加以下代碼段,就可以打印所有的輸出內容。

 

 

現在所有輸出可以一個接一個地打印出來。

 

 

輸入以下代碼可恢復到初始設置︰

 

 

8. 使用‘i’選項運行python腳本

從命令行運行python腳本的一種典型方式是︰python hello.py。但是,如果在運行相同腳本時添加一個額外的-i,例如python -i hello.py,則會帶來更多優勢。具體操作如下︰

首先,一旦程序結束,python就不會退出解釋程序。此時,用戶可以檢查變量值和程序中定義功能。

 

 

其次,因為用戶仍然在解釋程序中,所以可以通過以下方式輕松調用python調試器︰

 

 

該方式可幫助用戶找到異常發生的位置,然後可以處理代碼。

 

 

漏洞的原始來源

9. 自動注釋代碼

Ctrl/Cmd + / 可以自動注釋掉單元格中選定的行。再次點擊該組合鍵可以取消同一行代碼的注釋。

 

 

10. 撤銷刪除操作

你曾經有不小心刪除過筆記本中的單元格嗎?如果有,那麼這里有一個快捷鍵可以撤銷刪除操作。

如果刪除了單元格的內容,可以通過點擊CTRL/CMD+Z來輕松恢復它

如果需要恢復整個刪除的單元格,可以點擊ESC+Z或者 EDIT > Undo Delete Cells

 

上一篇︰武漢智慧城市建設何以敗走麥城? 工業大數據—從智能制造到工業互聯網下一篇︰

公眾平台

搜索"raincent"或掃描下面的二維碼

?