如何使用Pandas-Profiling進行探索性數據分析

2021-01-11 不靠譜的貓

當開始一個新的機器學習項目時,獲得機器學習數據集之後的第一步就是要了解它。我們可以通過執行探索性數據分析(EDA)來實現這一點。這包括找出每個變量的數據類型、目標變量的分布、每個預測變量的不同值的數量、數據集中是否有重複值或缺失值等。進行EDA探索機器學習數據集的過程往往是非常耗時的。

什麼是Pandas-Profiling?

Pandas-profiling是一個開源Python庫,它只需一行代碼即可為任何機器學習數據集生成漂亮的交互式報告。

pandas_profiling使用df.profile_report()擴展了DataFrame,以便進行快速數據分析。

每一列的以下統計數據(如果與列類型相關)都顯示在交互式HTML報告中:

類型推斷:檢測DataFrame中列的類型。概要:類型,唯一值,缺失值分位數統計信息,例如最小值,Q1,中位數,Q3,最大值,範圍,四分位數範圍描述性統計數據,例如均值,眾數,標準偏差,和,中位數絕對偏差,變異係數,峰度,偏度最常使用的值直方圖高度相關變量(Spearman,Pearson和Kendall矩陣)的相關性突出顯示缺失值矩陣,計數(count),熱圖和缺失值樹狀圖安裝Pandas-profiling

您可以使用pip軟體包管理器通過以下命令進行安裝:

pip install pandas-profiling[notebook,html]

您也可以直接從Github安裝最新版本(github.com/pandas-profiling/pandas-profiling/archive/master.zip)。

生成報告

在本文中,我將使用的機器學習數據集是Titanic。

加載Python庫

導入機器學習數據集

要生成報告,請運行以下Python代碼。

profile = ProfileReport(data, title="Titanic Dataset", html={'style': {'full_width': True}}, sort="None")

將報告作為IFrame包含在Notebook中

profile.to_notebook_iframe()

使用以下代碼將報告另存為HTML文件:

profile.to_file(output_file="your_report.html")

使用以下方式將數據保存為JSON:

# As a stringjson_data = profile.to_json()# As a fileprofile.to_file(output_file="your_report.json")

結果

現在我們知道了如何使用pandas-profiling生成報告,讓我們看一下結果。

概要

Pandas_profiling通過計算預測變量的總缺失單元格、重複行、不同值的數量、缺失值、zeros來創建預測變量的描述性概述。它還在警告部分標記具有高基數或缺失值的變量,如上圖所示。

類分布

數值特徵

對於數值特徵,除了有均值、標準差、最小值、最大值、四分位距(IQR)等詳細統計外,還繪製了直方圖,給出了常用值和極值的列表。

分類特徵

與數字特徵類似,對於分類特徵,它會計算通用值,長度,字符等。

交互

在交互部分,pandas_profiling庫自動為每一對變量生成交互圖。您可以通過從兩個標題中選擇特定的變量來獲取任何一對的交互關係圖。

相關矩陣

相關性是一種統計技術,它可以顯示變量對之間是否相關以及如何相關。

相關的主要結果稱為相關係數(或「r」)。它的範圍是從-1.0到+1.0。r越接近+1(或-1),這兩個變量的關係就越密切。如果r接近0,這意味著變量之間不相關。如果r是正的,這意味著一個變量變大,另一個變大。如果r是負的,這意味著隨著一個變大,另一個變小(通常稱為「逆相關」)。

在生成所有數值特徵的相關矩陣時,pandas_profiling庫為我們提供了所有流行的選項,包括Pearson的r,Spearman的ρ等。

缺點

pandas-profiling的主要缺點是針對大型機器學習數據集。隨著數據量的增加,生成報告的時間也增加了很多。

解決此問題的一種方法是為數據集的一部分生成概要報告。但是在執行此操作時,確保對數據進行隨機採樣非常重要,這樣它才能代表我們擁有的所有數據。我們可以這樣做:

如果您堅持要獲得關於整個數據集的報告,您可以使用最小模式來實現這一點。在最小模式下,生成的簡化報告比完整報告的信息要少,但對於大型數據集,生成的速度相對較快。簡化報告的代碼如下:

相關焦點

  • Pandas自動進行探索性數據分析,節省可視化和理解數據的時間
    根據Wikipedia的說法,探索性數據分析(EDA)是一種分析數據集以總結其主要特徵的方法,通常使用視覺方法。因此,EDA是理解基礎數據,變量分布及其相關性的過程。這使得EDA成為構建任何統計模型之前任何數據科學過程中的第一步。
  • Pandas GUI:如何輕鬆獲取Pandas數據幀?
    全文共2071字,預計學習時長6分鐘Pandas庫目前已經成為用Python進行探索性數據分析的絕佳伴侶。它功能豐富,靈活易用,成為了當今許多數據科學家的首選。Pandas庫的社區也很完善,這讓它能夠一直積極發展和改進。提到Pandas,就不得不提到這兩種工具:· 可以用簡短的代碼執行基本EDA的工具。
  • 5個可以幫助pandas進行數據預處理的可視化圖表
    分析數據點的探索性數據分析(EDA)是在算法的數據建模之前制定假設的正確步驟。 在現實生活中,從多個來源收集到的大多數時間數據都有空白值、打字錯誤和其他異常。在進行任何數據分析之前,清除數據是至關重要的。 在本文中,我將討論五個強大的數據可視化選項,它們可以立即提供數據特徵的感覺。即使在正式建模或假設測試任務之前,執行EDA就可以傳達大量關於數據和特徵之間關係的信息。
  • 數據分析從業者必看,10 個加速 python 數據分析的簡單的小技巧
    這是對 pandas 數據幀進行探索性數據分析的一種簡單快速的方法。pandas df.describe()和 df.info()函數通常用作 EDA 過程的第一步。但是,它只提供了非常基本的數據概述,對於大型數據集沒有太大幫助。另一方面,pandas 分析函數使用 df.profile_report()擴展 pandas 數據幀,以便快速進行數據分析。
  • 如何用pandas更快地進行數據可視化?
    作者:劉早起來源:早起Python(公眾號)如果你經常使用Python進行數據分析,那麼對於pandas一定不會陌生,但是Pandas除了在數據處理上大放異彩,隨著版本的不斷更新,Pandas的繪圖功能在某些情況下甚至要比matplotlib更加適用,本文就將介紹如何用
  • 數據分析領域的探索性數據分析究竟是什麼?
    我們經常討論數據分析和Bl科學方面:執行複雜查詢所需的計算和算法。當然,Bl的很大一部分是數學,在一般情況下理解數據需要計劃如何在一端構建分析結構,在另一端解釋結果,在一些人眼中這是一種藝術形式。什麼是探索性數據分析?探索性數據分析(EDA)是數據分析過程的第一步。
  • 探索性數據分析(EDA),你會使用嗎?
    所謂探索性數據分析(Exploratory Data Analysis,以下簡稱EDA),是指對已有的數據(特別是調查或觀察得來的原始數據)在儘量少的先驗假定下進行探索,通過作圖、制表、方程擬合、計算特徵量等手段探索數據的結構和規律的一種數據分析方法。
  • 從電影中看:探索性數據分析思維應用
    如果答案是「yes」,恭喜你,你已經在做探索性分析了!EDA——探索性數據分析探索性數據分析(EDA)是數據分析過程的第一部分。 在這個階段有幾件重要的事情要做,但歸結起來就是:弄清楚數據是什麼;建立你想問的問題以及如何表達它們,提出最好的展示和操作數據的方式,以得出重要的見解。
  • 懶人秘籍:教你如何避免編寫pandas代碼
    而大家都在儘可能地避免這種懸崖峭壁,結果可想而知,都轉向了如何避免編寫pandas代碼。在過去4年裡,筆者一直使用pandas作為數據分析的主要工具。必須承認,「如何避免編寫pandas代碼」的大部分內容來自於使用pandas編程的起步階段。在進行代碼審閱時,筆者仍然看到許多經驗豐富的程式設計師在看一些熱門「如何避免使用」的帖子。
  • Python數據分析利器,Pandas入門介紹,幫你便捷高效處理複雜數據
    關於Python的數據分析,當我們遇到的數據量小、數據結構簡單時,可以通過字典、列表等Python常見的數據結構來處理。但是當我們面對的大量數據以及複雜數據的局面時,就需要用一些專門用於數據分析的擴展庫來處理數據了。今天給大家介紹一個Python裡專門用來做數據分析和處理的擴展庫。
  • Python數據分析:pandas讀取和寫入數據
    我的公眾號是關於自己在數據分析/挖掘學習過程中的一些技術和總結分享,文章會持續更新......繼續深入學習pandas相關操作,數據讀取寫入、分組、合併,轉換等等。前面一篇文章裡已經寫了關於描述性統計以及常用的基本操作。接下來的一段時間裡,我將陸續地去掌握並輸出。這篇文章是關於數據讀取與寫入的知識點。
  • 資料|利用Python進行數據分析
    ——Fernando Pérez 加州大學伯克利分校 研究科學家, IPython的創始人之一【內容簡介】還在苦苦尋覓用Python控制、處理、整理、分析結構化數據的完整課程?本書含有大量的實踐案例,你將學會如何利用各種Python庫(包括NumPy、pandas、matplotlib以及IPython等)高效地解決各式各樣的數據分析問題。
  • 第5章 精通pandas合併操作(使用pandas進行數據分析,)
    可以一次添加多個列:df_append.assign(col1=lambda x:x['Gender']*2,col2=s)二、combine與update1. comine方法comine和update都是用於表的填充函數,可以根據某種規則填充(a)填充對象可以看出combine方法是按照表的順序輪流進行逐列循環的
  • 未明學院:7張思維導圖掌握數據分析關鍵庫pandas
    原創: 未明學院Pandas是一個強大的分析結構化數據的工具集;它基於numpy,用於數據分析和數據挖掘,同時也提供數據清洗功能。pandas與numpy一起構成了數據分析的基礎雙生庫。今天小明邀請了未明的王老師,給大家總結了pandas的核心知識,主要包括以下幾個方面。pandas核心知識01、首先我們來認識一下pandas的一些基本概念。pandas概述02在使用pandas做數據分析的時候往往第一步就是將數據導入進來,比如csv或者excel格式的數據,下面這張圖就是我們讀取數據時候的方法和參數。
  • 數據分析?從一開始你就錯了!探索性數據分析套路解讀
    第一次接觸在Coursera網站的這門ExploratoryData Analysis課程裡,這是一整套「數據分析課程」的其中一門,主要介紹了如何運用R語言對數據進行探索性的發現,將數據用簡單的圖示表示以便於更好的發現數據的潛在特徵。完成課程之初,並不以為這是數據分析過程中一個關鍵的步驟,在做項目時只是簡單的跑跑summary語句大概看看分布,之後還是我行我素。
  • 使用Pandas的resample函數處理時間序列數據的技巧
    時間序列數據在數據科學項目中很常見。 通常,可能會對將時序數據重新採樣到要分析數據的頻率或從數據中汲取更多見解的頻率感興趣。在本文中,我們將介紹一些使用Pandas resample()函數對時間序列數據進行重採樣的示例。 我們將介紹以下常見問題,並應幫助您開始使用時序數據操作。
  • Pandas的介紹與基本使用
    1、什麼是Pandas當大家談論到數據分析時,提及最多的語言就是Python和SQL,而Python之所以適合做數據分析,就是因為他有很多強大的第三方庫來協助,pandas就是其中之一,它是基於Numpy構建的,正因pandas的出現,讓Python語言也成為使用最廣泛而且強大的數據分析環境之一。
  • Python學習120課 pandas簡介kaggle下載數據及pandas讀取外部數據
    numpy的基本的東西我們學習差不多了,後面具體應用中遇到問題具體分析,然後去深入了解遇到的新的知識點就行。現在我們開始學習pandas,pandas一般用的更多,pandas是基於numpy去寫的。pandas是一個專門做數據結構和數據分析的庫。
  • 懂Excel就能輕鬆入門Python數據分析包pandas(十六):合併數據
    此系列文章收錄在公眾號中:數據大宇宙 > 數據處理 >E-pd經常聽別人說 Python 在數據領域有多厲害,結果學了很長時間,連數據處理都麻煩得要死。後來才發現,原來不是 Python 數據處理厲害,而是他有數據分析神器—— pandas前言本系列上一節說了拆分數據的案例,這次自然是說下怎麼合併數據。
  • pandas使用的25個技巧
    查詢pandas版本  如果你還想知道pandas所依賴的模塊的版本,你可以使用show_versions()函數:  為了對這些列進行數學運算,我們需要將數據類型轉換成數值型。你可以對前兩列使用astype()函數: