7個(gè)Python特殊技巧,助力你的數(shù)據(jù)分析工作之路

2021-11-04    分類: 網(wǎng)站建設(shè)

本文列舉了一些提升或加速日常數(shù)據(jù)分析工作的技巧,包括:

1.PandasProfiling

2.使用Cufflinks和Plotly繪制Pandas數(shù)據(jù)

3.IPython魔術(shù)命令

4.Jupyter中的格式編排

5.Jupyter快捷鍵

6.在Jupyter(或IPython)中使一個(gè)單元同時(shí)有多個(gè)輸出

7.為JupyterNotebook即時(shí)創(chuàng)建幻燈片

1.PandasProfiling

該工具效果明顯。下圖展示了調(diào)用df.profile_report()這一簡單方法的結(jié)果:

使用該工具只需安裝和導(dǎo)入PandasProfiling包。

本文不再詳述這一工具,如欲了解更多,請閱讀:

https://towardsdatascience.com/exploring-your-data-with-just-1-line-of-python-4b35ce21a82d

2.使用Cufflinks和Plotly繪制Pandas數(shù)據(jù)

「經(jīng)驗(yàn)豐富的」數(shù)據(jù)科學(xué)家或數(shù)據(jù)分析師大多對matplotlib和pandas很熟悉。也就是說,你只需調(diào)用.plot()方法,即可快速繪制簡單的pd.Dataframe或pd.Series:

有點(diǎn)無聊?

這已經(jīng)很好了,不過是否可以繪制一個(gè)交互式、可縮放、可擴(kuò)展的全景圖呢?是時(shí)候讓Cufflinks**出馬了!(Cufflinks基于Plotly做了進(jìn)一步的包裝。)

在環(huán)境中安裝Cufflinks,只需在終端中運(yùn)行!pipinstallcufflinks--upgrade即可。查看下圖:

效果好多了!

注意,上圖唯一改變的是Cufflinkscf.go_offline()的導(dǎo)入和設(shè)置,它將.plot()方法變?yōu)?iplot()。

其他方法如.scatter_matrix()也可以提供非常棒的可視化結(jié)果:

需要做大量數(shù)據(jù)可視化工作的朋友,可以閱讀Cufflinks和Plotly的文檔,發(fā)現(xiàn)更多方法。

Cufflinks文檔:https://plot.ly/ipython-notebooks/cufflinks/

Plotly文檔:https://plot.ly/

3.IPython魔術(shù)命令

IPython的「魔術(shù)」是IPython基于Python標(biāo)準(zhǔn)語法的一系列提升。魔術(shù)命令包括兩種方法:行魔術(shù)命令(linemagics):以%為前綴,在單個(gè)輸入行上運(yùn)行;單元格魔術(shù)命令(cellmagics):以%%為前綴,在多個(gè)輸入行上運(yùn)行。下面列舉了IPython魔術(shù)命令提供的一些有用功能:

%lsmagic:找出全部命令

如果你只記得一個(gè)魔術(shù)命令,那必須得是這一個(gè)。執(zhí)行%lsmagic命令將提供所有可用魔術(shù)命令的列表:

%debug:交互式debug

這可能是我最常使用的魔術(shù)命令了。

大部分?jǐn)?shù)據(jù)科學(xué)家都遇到過這種情況:執(zhí)行的代碼塊一直break,你絕望地寫了20個(gè)print()語句,想輸出每個(gè)變量的內(nèi)容。然后,當(dāng)你最終修復(fù)問題后,你還得返回并再次刪除所有print()語句。

不過以后再也不用這樣了。遇到問題后只需執(zhí)行%debug命令,即可執(zhí)行想要運(yùn)行的任意代碼部分:

上圖中發(fā)生了什么?

我們有一個(gè)函數(shù),它以列表為輸入,并對所有的偶數(shù)取平方值。

我們運(yùn)行函數(shù),但是出了些問題。但是我們并不知道怎么回事!

對該函數(shù)使用%debug命令。

讓調(diào)試器告訴我們x和type(x)的值。

問題顯而易見:我們把''6''作為字符串輸入到函數(shù)中了!

這對于更復(fù)雜的函數(shù)非常有用。

%store:在notebook之間傳遞變量

這個(gè)命令也很酷。假設(shè)你花了一些時(shí)間清洗notebook中的數(shù)據(jù),現(xiàn)在你想在另一個(gè)notebook中測試一些功能,那么你是在同一個(gè)notebook中實(shí)現(xiàn)該功能,還是保存數(shù)據(jù)并在另一個(gè)notebook中加載數(shù)據(jù)呢?使用%store命令后,這些操作都不需要!該命令將存儲(chǔ)變量,你可以在其他任意notebook中檢索該變量:

%store[variable]存儲(chǔ)變量。

%store-r[variable]讀取/檢索存儲(chǔ)變量。

%who:列出所有全局變量。

你是否遇到過,為變量賦值后卻忘記變量名的情況?或者不小心刪掉了負(fù)責(zé)為變量賦值的單元格?使用%who命令,你可以得到所有全局變量的列表:

%%time:計(jì)時(shí)魔法命令

使用該命令可以獲取所有計(jì)時(shí)信息。只需對任意可執(zhí)行代碼應(yīng)用%%time命令,你就可以得到如下輸出:

%%writefile:向文件寫入單元格內(nèi)容

在notebook中寫復(fù)雜函數(shù)或類,且想將其保存到專屬文件中時(shí),該魔法命令非常有用。只需為函數(shù)或類的單元格添加%%writefile前綴和想要保存到的文件名即可:

如上所示,我們可以將創(chuàng)建的函數(shù)保存到utils.py文件中,然后就可以隨意導(dǎo)入了。在其他notebook中也可以這樣,只要與utils.py文件屬于同一個(gè)目錄即可。

4.Jupyter中的格式編排

這個(gè)工具很酷!Jupyter考慮到markdown中存在HTML/CSS格式。以下是我最經(jīng)常使用的功能:

藍(lán)色、時(shí)尚:

<div >Thisis<b>fancy</b>!</div>

紅色、輕微慌張:

<div >Thisis<b>baaaaad</b>!</div>

綠色、平靜:

<div >Thisis<b>gooood</b>!</div>

下圖展示了它們的運(yùn)行過程:

注冊公司需要多少錢深圳財(cái)務(wù)代理深圳注冊公司深圳代理記賬深圳代賬公司

當(dāng)你想以Notebook格式呈現(xiàn)一些發(fā)現(xiàn)時(shí),這非常有用!

5.Jupyter快捷鍵

想了解和學(xué)習(xí)鍵盤快捷鍵,你可以使用命令面板:Ctrl+Shift+P,獲取notebook所有功能的列表。下面選取了幾個(gè)最基礎(chǔ)的命令:

Esc:進(jìn)入命令模式。在命令模式內(nèi),你可以使用方向鍵在notebook內(nèi)進(jìn)行導(dǎo)航。

在命令模式內(nèi):

a和B:在當(dāng)前單元格上方(above)或下方(Below)插入新的單元格。

M:當(dāng)前單元格轉(zhuǎn)入Markdown狀態(tài)。

Y:當(dāng)前單元格轉(zhuǎn)入code狀態(tài)。

D,D:刪除當(dāng)前單元格。

Enter:當(dāng)前單元格回到編輯模式。

在編輯模式內(nèi):

Shift+Tab:為你在當(dāng)前單元格中鍵入的對象提供文檔字符串(文檔),持續(xù)使用該快捷鍵,可循環(huán)使用文檔模式。

Ctrl+Shift+-:在光標(biāo)所在處分割當(dāng)前單元格。

Esc+F:查找并替換代碼(不包括輸出)。

Esc+O:切換單元格輸出。

選擇多個(gè)單元格:

Shift+Down和Shift+Up:選中下方或上方的單元格。

Shift+M:合并選中單元格。

注意,選中多個(gè)單元格后,你可以批量執(zhí)行刪除/復(fù)制/剪切/粘貼/運(yùn)行操作。

6.在Jupyter(或IPython)中使一個(gè)單元同時(shí)有多個(gè)輸出

想展示pandasDataframe的.head()和.tail(),但由于創(chuàng)建運(yùn)行.tail()方法的額外代碼單元過于麻煩而不得不中途放棄,你是否有過這樣的經(jīng)歷?現(xiàn)在不用怕了,你可以使用以下代碼行展示你想展示的輸出:

fromIPython.core.interactiveshellimportInteractiveShellInteractiveShell.ast_node_interactivity="all"

下圖展現(xiàn)了多個(gè)輸出的結(jié)果:

7.為JupyterNotebook即時(shí)創(chuàng)建幻燈片

使用RISE,你可以僅通過一次按鍵將JupyterNotebook即時(shí)轉(zhuǎn)變?yōu)榛脽羝6襫otebook仍然處于活躍狀態(tài),你可以在展示幻燈片的同時(shí)執(zhí)行實(shí)時(shí)編碼!

要想使用該工具,你只需通過conda或pip安裝RISE即可。

condainstall-cconda-forgerise

或者

pipinstallRISE

現(xiàn)在,你可以點(diǎn)擊新按鈕,為notebook創(chuàng)建不錯(cuò)的幻燈片了:


名稱欄目:7個(gè)Python特殊技巧,助力你的數(shù)據(jù)分析工作之路
本文地址:http://m.kartarina.com/news43/134343.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號做網(wǎng)站用戶體驗(yàn)關(guān)鍵詞優(yōu)化網(wǎng)頁設(shè)計(jì)公司定制開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名
主站蜘蛛池模板: 色综合热无码热国产| 精品无码久久久久久久久| 国产亚洲人成无码网在线观看| 波多野42部无码喷潮在线| 无码日韩人妻精品久久蜜桃| 人妻丰满熟AV无码区HD| 无码人妻精品一区二区三区99仓本 | 日韩人妻无码精品一专区| 亚洲youwu永久无码精品| 免费人成无码大片在线观看 | 免费无码一区二区三区| 精品久久久无码人妻字幂| 久久久久久久人妻无码中文字幕爆 | 国产精品无码不卡一区二区三区| 67194成l人在线观看线路无码| 狠狠精品久久久无码中文字幕| 无码专区永久免费AV网站| 亚洲精品无码不卡| 国产产无码乱码精品久久鸭| 亚洲AⅤ永久无码精品AA| 99精品一区二区三区无码吞精| 亚洲综合无码精品一区二区三区| 国产乱子伦精品免费无码专区| 无码人妻丰满熟妇啪啪网站| 人妻少妇偷人精品无码| 国产成人精品无码片区在线观看 | 无码日韩人妻av一区免费| 久久综合精品国产二区无码| 国产激情无码一区二区app| 亚洲精品无码99在线观看| 无码熟妇αⅴ人妻又粗又大| 日韩av片无码一区二区不卡电影| 精品无码免费专区毛片| 无码任你躁久久久久久老妇App| 少妇无码一区二区三区免费| 久久午夜伦鲁片免费无码| 久久久久久AV无码免费网站| 无码人妻丰满熟妇区五十路百度| 亚洲av无码专区在线播放| 人妻少妇伦在线无码专区视频| AV无码免费永久在线观看|