您好,登錄后才能下訂單哦!
這篇文章主要介紹“提高Python數據分析速度的技巧有哪些”,在日常操作中,相信很多人在提高Python數據分析速度的技巧有哪些問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”提高Python數據分析速度的技巧有哪些”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
1.預覽Pandas中的數據框數據(Dataframe)
分析預覽(profiling)是一個幫助我們理解數據的過程,在Python中Pandas Profiling 是可以完成這個任務的一個工具包,它可以簡單快速地對Pandas 數據框進行搜索性數據分析。Pandas中df.describe()和df.info()函數通常可以實現EDA過程的第一步,但如果只是給出非常基礎的數據預覽并不能對分析那些大型的數據集提供幫助。另一方面來看,Pandas Profiling函數能通過一行代碼來展示出大量的信息,而在交互式HTML報告中也是這樣。
對于一個給定的數據集,Pandas Profiling 工具包將會計算出下面的統計信息:
由pandas profiling包算出的統計信息
代碼示例:
安裝
Python2.x的版本中,運用pip或conda安裝pandas-profiling資源包:
pip install pandas-profiling or conda install -c anaconda pandas-profiling
使用
現在用一個古老的泰坦尼克數據集來演示多功能python profiler的結果:
#importing the necessary packages import pandas as pd ##使用pandas資源包 import pandas_profiling ##使用新安裝的pandas profiling資源包 df = pd.read_csv('titanic/train.csv') ##讀取數據形成數據框 pandas_profiling.ProfileReport(df) ##使用pandas profiling
分析數據
這一行就是你需要在jupyter notebook中形成數據分析報告所需的全部代碼。這個數據報告十分詳細,包括了所有必要的圖表。
這個報告也可以用下面的代碼形成交互HTML文件(interactive HTML file)導出:
profile = pandas_profiling.ProfileReport(df) profile.to_file(outputfile="Titanic data profiling.html") ##形成Titanic data profiling.html網頁
2.Pandas圖表(Plot)的交互性
Pandas中有一個內置的.plot()函數作為數據框(Dataframe)的一部分,但因為這個函數呈現的可視化并不是交互的,這使它的功能沒那么吸引人。而且,使用pandas.DataFrame.plot()函數繪制圖表也并不容易。如果我們想要在沒有對代碼進行重大修改的情況下用pandas繪制交互式圖表要怎么辦?嗯,可以通過Cufflinks資源包來幫助你完成這一目的。
Cufflinks資源包將功能強大的plotly和靈活易用的pandas結合,非常便于繪圖。現在我們來看看怎么安裝和在pandas中使用這個資源包。
代碼示例:
安裝
Python2.x的版本中,使用pip安裝plotly和cufflink:
pip install plotly # Plotly is a pre-requisite before installing cufflinks(plotly先于cufflinks安裝) pip install cufflinks
使用
調用方法:
#importing Pandas import pandas as pd ##使用pandas資源包 #importing plotly and cufflinks in offline mode import cufflinks as cf ##使用cufflinks 和plotly資源包 import plotly.offline cf.go_offline() ##使用cufflink包中的函數 cf.set_config_file(offline=False, world_readable=True)
下面來看一下泰坦尼克數據集所展現的魔力:
df.iplot()
右邊的可視化展示的是靜態的線狀圖,而左邊的圖是交互式的,并且更加詳細,兩個圖在代碼上沒有重大的變化。
3.一點點魔法
Magic命令是Jupyter Notebook中的一組便捷功能,它們旨在解決數據分析中一些常見的問題。你可以用%Ismagic來查閱所有的Magic 命令。
上圖列舉了所有可用的Magic 函數
Magic命令有兩大類:行magic命令(line magics),以單個% 字符為前綴,單行輸入操作;單元magics命令(cell magics),以雙%% 字符作為前綴,可以在多行輸入操作。如果設置為1,我們使用magic 函數時不需要鍵入%。
下面讓我們來看一下,在常見的數據分析任務中一些可能會用到的命令。
% pastebin
% pastebin將代碼上傳到Pastebin并返回一個鏈接。Pastebin是一個線上內容托管服務,我們可以在上面存儲純文本,如源代碼片段,所形成的鏈接也可以分享給他人。事實上,Github gist也類似于pastebin,只是它帶有版本控制。
代碼示例:
來看一下這個file.py的python代碼文件中的內容:
#file.py def foo(x): return x
在Jupyter Notebook中使用% pastebin形成一個pastebin的鏈接。
%matplotlib notebook
%matplotlib inline函數用于在Jupyter筆記本中呈現靜態matplotlib圖。我們可以嘗試用notebook來代替inline得到可輕松地縮放和調整大小的繪圖,但要確保在套用matplotlib資源包之前調用該函數。
%matplotlib inline vs %matplotlib notebook
%run
%run函數用于jupyter notebook中運行一個python腳本文件。
%%writefile
%% writefile將執行單元的內容寫入文件。下面的這段代碼將寫入名為foo.py的文件并保存在當前目錄中。
%%latex
%% latex函數將單元格內容以LaTeX的形式呈現。它對于在單元格中編寫數學公式和方程很有用。
4.發現并減少錯誤
交互式調試器(interactive debugger)也是一個Magic函數,但我必須給它歸個類。如果你在運行代碼單元出現異常時,可以在新行中鍵入%debug運行。這將打開一個交互式調試環境,它將您告訴你代碼發生異常的位置。你還可以檢查程序中分配的變量值,并在此處執行操作。點擊q可退出調試器。
5.輸出也可如此美觀
如果你想生成美觀的數據結構,pprint是首選的模塊。它在輸出字典數據或JSON數據時特別有用。下面來看一下print 和pprint輸出的一個例子:
6.讓提示更突出
可以在你的Jupyter Notebook中使用提示/注釋框來突出顯示任何重要的內容。注釋的顏色取決于指定的提示類型。只需在代碼中加入需要突出顯示的內容即可。
藍色提示框:注釋
代碼示例:
<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 Notebook格中包含的幾行代碼:
In[1]: 10+5 11+6 Out[1]: 17
通常一個執行單元只輸出最后一行的結果,而對于其他輸出我們需要添加print()函數。好吧,事實證明我們可以通過在Jupyter Notebook開頭添加以下代碼來輸出每一行的結果:
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 Notebook中的執行單元呢?如果有,這里有一個可以撤消該刪除操作的快捷方式。
如果你誤刪了執行單元的內容,可以通過點擊CTRL/CMD+Z輕松恢復。
如果你想要恢復所刪除執行單元的所有內容,可以點擊ESC+Z 或者 EDIT > Undo Delete Cells
到此,關于“提高Python數據分析速度的技巧有哪些”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。