10個Python簡單技巧,讓數據分析速度加快不止一倍!

全文共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便可。

相關文章
相關標籤/搜索