全文共3915字,預計學習時長8分鐘html
有時,在編程領域的一個小技巧、一個小的快捷方式或附加組件能極大地提升生產力。下文中的建議和技巧有些可能很常見,有些則較新穎,相信你在未來處理數據分析項目時會派上用場。node
1. 分析pandas數據框python
Profiling是幫助理解數據的過程,而Pandas Profiling 是幫助理解數據的python包,能簡單快速地對Pandas數據框進行探索性數據分析。Pandas中 df.describe()和df.info()函數一般做爲EDA(電子設計自動化)過程的第一步。但它只提供了一個很是基本的數據概覽,對於大型數據集而言,並沒有太大幫助。此外,Pandas Profiling函數用一行代碼顯示了不少信息,交互式HTML報告中也顯示了這一點。shell
對於給定的數據集,pandas profiling包計算如下統計數據:編程
安裝數據結構
pip install pandas-profiling函數
or學習
conda install -c anaconda pandas-profilingui
用法url
下面使用古老的titanic數據集,演示多功能python分析器的功能。
#importing the necessary packages
import pandas as pd
import pandas_profiling
df = pd.read_csv('titanic/train.csv')
pandas_profiling.ProfileReport(df)
只須要這一行代碼就能夠在Jupyter筆記本中顯示數據分析報告。報告很是詳細,包括全部必要的圖表。
還可使用如下代碼將報告導出到交互式HTML文件中。
profile = pandas_profiling.ProfileReport(df)profile.to_file(outputfile="Titanic data profiling.html")
2. 實現pandas 交互式繪圖
Pandas內置的.plot()函數是其dataframe類別的一部分。然而,使用該函數呈現的可視化效果並不具備交互性,這使得其吸引力下降。但也不可否認使用pandas.dataframe.plot()函數繪製圖表的方便性。若是不需對代碼進行重大修改,就能夠像用pandas繪製圖表那樣巧妙地繪製交互式plotly呢?實際上,在Cufflinks 庫的幫助下可作到這一點。
Cufflinks庫結合了plotly的力量與pandas的靈活性,便於繪圖。如今讓咱們來看看如何安裝這個庫,並讓它在pandas中工做。
安裝
pip install plotly # Plotly is a pre-requisite before
installing cufflinks
pip install cufflinks
用法
#importing Pandas
import pandas as pd
#importing plotly and cufflinks in offline mode
import cufflinks as cf
import plotly.offline
cf.go_offline()
cf.set_config_file(offline=False, world_readable=True
如今能夠見證Titanic 數據集的神奇之處了。
df.iplot()
df.iplot() vs df.plot()
上邊的可視化結果是靜態圖表,而下邊的圖表是交互式的,而且更加詳細,全部這些都沒有對句法進行任何重大更改。
3. 一些Magic
Magic命令是Jupyter筆記本中一組方便的函數,旨在解決標準數據分析中一些常見問題。在%lsmagic的幫助下,你能夠看到全部可用的magic。
全部可用的magic函數列表
Magic命令有兩種:行magic命令, (以單個%字符爲前綴,並在一行輸入上操做)和單元magic命令(與雙%%前綴關聯,並在多行輸入上操做)。若是將Magic函數設置爲1,則無需鍵入初始%便可調用。
下面是進行常見數據分析任務的一些實用方法:
· % pastebin
%pastebin將代碼上載到Pastebin並返回url。pastebin可提供在線內容託管服務,可用語存儲純文本,如源代碼片斷,可與他人共享url。事實上,Github gist也相似於pastebin,儘管存在版本控制。假設python腳本file.py的內容以下:
#file.py
def foo(x):
return x
在Jupyter筆記本中使用%pastebin會產生一個pasterbin的url。
· %matplotlib notebook
%matplotlib內聯函數用於呈現Jupyter筆記本中的靜態matplotlib繪圖。嘗試用notebook替換內聯部分以輕鬆得到可縮放和可調整大小的繪圖。確保在導入matplotlib庫前,調用該函數。
%matplotlib inline vs %matplotlib notebook
· %run
%run函數在筆記本中運行python腳本。
%run file.py
· %%writefile
%%writefile將單元格的內容寫入文件。這裏的代碼將被寫到一個名爲foo.py的文件中,並保存在當前目錄中。
· %%latex
%%latex函數將單元格內容呈現爲LaTeX,這有助於在單元格中編寫數學公式和方程。
4. 發現並消除錯誤
交互式調試器也是一個神奇的函數,可是其已有本身的類別。若是在運行代碼單元格時出現異常,請在新行中鍵入並運行%debug。這將打造一個交互式調試環境,令你置身於異常發生之處。你還能夠檢查程序中分配的變量值,並在此處執行操做如需退出調試器,請按q。
5. 打印美觀
若是想爲數據結構生成美觀的表示形式,pprint是首選模塊。它在打印字典或JSON數據時特別有用。下面是同時使用print和pprint顯示輸出的示例。
6. 突出註釋
可在Jupyter筆記本中使用警示框/註釋框突出顯示一些重要的東西或任何須要突出的東西。註釋的顏色取決於指定的警告類型。只需在須要突出顯示的單元格中添加如下任一代碼或全部代碼。
· 藍色警示框:信息
<div class="alert alert-block alert-info">
<b>Tip:</b> Use blue boxes (alert-info) for tips and notes.
If it’s a note, you don’t have to include the word 「Note」.
</div>
· 黃色警示框:警告
<div class="alert alert-block alert-warning">
<b>Example:</b> Yellow Boxes are generally used to include additional examples or mathematical formulas.
</div>
· 綠色警示框:成功
<div class="alert alert-block alert-success">
Use green box only when necessary like to display links to related content.
</div
· 紅色警示框:危險
<div class="alert alert-block alert-danger">
It is good to avoid red boxes but can be used to alert users to not delete some important part of code etc.
</div>
7. 打印一個單元格的全部輸出
若是Jupyter筆記本的一個單元格中包含如下代碼行:
In [1]: 10+5
11+6
Out [1]: 17
單元格的正常屬性是隻打印最後一個輸出,要打印其餘輸出,須要添加print()函數。事實上,只要在筆記本的頂部添加如下代碼片斷,就能夠打印全部輸出。
from IPython.core.interactiveshell import InteractiveShell InteractiveShell.ast_node_interactivity = "all"
接下來全部的輸出便會依次打印。
In [1]: 10+5
11+6
12+7
Out [1]: 15
Out [1]: 17
Out [1]: 19
恢復原來的設置:
InteractiveShell.ast_node_interactivity = "last_expr"
8. 使用「i」選項運行python腳本
從命令行運行python腳本的一種典型方法是:python hello.py。但若是在運行相同的腳本時添加一個-i,即 python -i hello.py ,會產生更多好處。緣由以下:
· 首先,一旦程序結束,python不會退出解釋器。所以,可檢查變量值和程序中定義函數的正確性。
· 其次,能夠很容易地調用python調試器,由於經過如下代碼便可仍處於解釋器中:
import pdb
pdb.pm()
這能定位異常狀況發生之處,從而修正代碼。
9. 自動註釋代碼
Ctrl/Cmd + / 自動註釋單元格中選定的行。再次點擊該組合將取消對同一行代碼的註釋。
10. 刪除容易恢復難
你是否曾經不當心刪除了Jupyter筆記本中的一個單元格?
若是是,這裏有一個快捷方式能夠撤消刪除操做。
· 若是刪除了一個單元格中的內容,按CTRL/CMD+Z便可恢復該內容。
· 若是須要恢復整個刪除的單元格,按ESC+Z 或者EDIT > Undo Delete Cells便可。