<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          7個Pandas&Jupyter特殊技巧,讓Python數(shù)據(jù)分析更輕松

          共 3514字,需瀏覽 8分鐘

           ·

          2021-12-15 03:58

          來源 : 機器之心
          本文列舉了一些提升日常數(shù)據(jù)分析工作的技巧,包括:


          1. Pandas Profiling
          2. 使用 Cufflinks 和 Plotly 繪制 Pandas 數(shù)據(jù)
          3. IPython 魔術命令
          4. Jupyter 中的格式編排
          5. Jupyter 快捷鍵
          6. 在 Jupyter(或 IPython)中使一個單元同時有多個輸出
          7. 為 Jupyter Notebook 即時創(chuàng)建幻燈片


          1. Pandas Profiling


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



          使用該工具只需安裝和導入 Pandas Profiling 包。


          本文不再詳述這一工具,如欲了解更多,請閱讀:https://towardsdatascience.com/exploring-your-data-with-just-1-line-of-python-4b35ce21a82d

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


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


          有點無聊?


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


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


          效果好多了!


          注意,上圖唯一改變的是 Cufflinks cf.go_offline() 的導入和設置,它將 .plot() 方法變?yōu)?.iplot()。


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


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

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

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


          3. IPython 魔術命令


          IPython 的「魔術」是 IPython 基于 Python 標準語法的一系列提升。魔術命令包括兩種方法:行魔術命令(line magics):以 % 為前綴,在單個輸入行上運行;單元格魔術命令(cell magics):以 %% 為前綴,在多個輸入行上運行。下面列舉了 IPython 魔術命令提供的一些有用功能:


          %lsmagic:找出全部命令


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



          %debug:交互式 debug


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


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


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



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


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

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

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

          4. 讓調試器告訴我們 x 和 type(x) 的值。

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


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


          %store:在 notebook 之間傳遞變量


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



          • %store [variable] 存儲變量。

          • %store -r [variable] 讀取/檢索存儲變量。



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


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


          %%time:計時魔法命令


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



          %%writefile:向文件寫入單元格內容


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


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


          4. Jupyter 中的格式編排


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


          藍色、時尚:
          <div class="alert alert-block alert-info"> ??This?is?<b>fancyb>!div>


          紅色、輕微慌張:
          This is baaaaad!

          綠色、平靜:
          <div class="alert alert-block alert-success"> This is <b>goooodb>!div>
          下圖展示了它們的運行過程:


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

          5. Jupyter 快捷鍵


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


          • Esc:進入命令模式。在命令模式內,你可以使用方向鍵在 notebook 內進行導航。


          在命令模式內:


          • A 和 B:在當前單元格上方(Above)或下方(Below)插入新的單元格。

          • M:當前單元格轉入 Markdown 狀態(tài)。

          • Y:當前單元格轉入 code 狀態(tài)。

          • D,D:刪除當前單元格。

          • Enter:當前單元格回到編輯模式。


          在編輯模式內:


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

          • Ctrl + Shift + -:在光標所在處分割當前單元格。

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

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


          選擇多個單元格:


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

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


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


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


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

          from IPython.core.interactiveshell import InteractiveShellInteractiveShell.ast_node_interactivity = "all"

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



          7. 為 Jupyter Notebook 即時創(chuàng)建幻燈片


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

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


          conda install -c conda-forge rise
          或者
          pip install RISE


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



          加入知識星球【我們談論數(shù)據(jù)科學】

          400+小伙伴一起學習!








          ·?推薦閱讀?·

          「Python實用秘技01」復雜zip文件的解壓

          pandas常用字符串處理方法看這一篇就夠了

          geopandas輕松繪制交互式在線地圖


          瀏覽 56
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  日本性高潮视频 | 国产一a毛一a毛A免费看图 | 黄色成人视频在线 | 先锋在线成人 | sm在线观看 |