衡阳派盒市场营销有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Pandas profiling數據庫的功能及解決方案

數據分析與開發 ? 來源:數據STUDIO ? 作者:云朵君 ? 2022-03-15 16:31 ? 次閱讀

Pandas 庫功能非常強大,特別有助于數據分析與處理,并為幾乎所有操作提供了完整的解決方案。一種常見的Pandas函數是pandas describe。它向用戶提供數據集所有特征的描述性統計摘要,盡管其比較常用,但它仍然沒有提供足夠詳細的功能。

Pandas profiling可以彌補pandas describe沒有詳細數據報告生成的不足。它為數據集提供報告生成,并為生成的報告提供許多功能和自定義。在本文中,我們將探索這個庫,查看提供的所有功能,以及一些高級用例和集成,這些用例和集成可以對從數據框創建令人驚嘆的報告!

安裝

與其他所有 python 包一樣,可以通過 pip 包管理器輕松安裝 Pandas 分析:

pipinstallpandas-profiling

它也可以通過 Conda 包管理器安裝:

condaenvcreate-npandas-profiling
condaactivatepandas-profiling
condainstall-cconda-forgepandas-profiling

數據集和設置

看下如何啟動pandas_profiling庫并從數據框中生成報告了。首先導入一個將為其生成報告的數據集。該數據集包含State_name、District_name、Crop_year、Season、Crop、Area 和 Production農業數據集。

數據集獲取:
https://www.kaggle.com/divyosmi2009/crop-production-in-india-statevise?select=crop_production.csv

importpandasaspd
df=pd.read_csv("crop_production.csv")

在討論pandas_profiling之前,先看看數據幀的Pandas describe函數輸出:

df.describe(include='all')

15976f0e-91e2-11ec-952b-dac502259ad0.png

注意我使用了describe函數的include參數設置為"all",強制 pandas 包含要包含在摘要中的數據集的所有數據類型。字符串類型值伴隨有諸如unique、top 和 freq等選項。

導入 pandas_profiling

frompandas_profilingimportProfileReport

分析DataFrame有兩種方法:

  1. 可以在 Pandas DataFrame上調用'.profile_report()'函數。此函數不是 Pandas API 的一部分,但只要導入profiling庫,它就會將此函數添加到DataFrame對象中。
  2. 可以將DataFrame對象傳遞給profiling函數,然后調用創建的函數對象以開始生成分析文件。

無論采用哪種方式,都將獲得相同的輸出報告。我正在使用第二種方法為導入的農業數據集生成報告。

profile=ProfileReport(df)
profile

15af4d18-91e2-11ec-952b-dac502259ad0.gif

動畫顯示報告生成

報告部分

現在我們一起一一探索生產報告的所有部分。

1. 概述 Overview

此部分包含 3 個選項卡:Overview, Warnings, 和 Reproduction。

Overview包括總體統計的。這包括變量數(數據框的特征或列)、觀察數(數據框的行)、缺失單元格、缺失單元格百分比、重復行、重復行百分比和內存中的總大小。

15d06da4-91e2-11ec-952b-dac502259ad0.png

Warnings選項卡由任何類型的相關基數,相關性與其他變量,缺失值零,偏態變量,以及其他Warnings。

15e03b58-91e2-11ec-952b-dac502259ad0.png

reproduction標簽只顯示相關的報告生成的信息。它顯示分析的開始和結束時間、生成報告所用的時間、pandas_profiling 的版本以及配置下載選項。

15f853aa-91e2-11ec-952b-dac502259ad0.png

我們將在本文的高級用例部分討論配置文件。

2. 變量

報告的這一部分詳細分析了數據集的所有變量/列/特征。顯示的信息因變量的數據類型而異。

數值變量

對于數值數據類型特征,可以獲得有關不同值、缺失值、最小值-最大值、平均值和負值計數的信息。還可以獲得直方圖形式的小表示值。

160cad6e-91e2-11ec-952b-dac502259ad0.png

切換按鈕來展開的Statistics, Histogram, Common values, Extreme values選項卡。

統計選項卡包括:

  1. 分位數統計:Min-Max、百分位數、中位數、范圍和 IQR(四分位間距)。
  2. 描述性統計:標準偏差、方差系數、峰度、均值、偏度、方差和單調性。

1626ab38-91e2-11ec-952b-dac502259ad0.png

直方圖選項卡顯示變量的頻率或數值數據的分布。通用值選項卡基本上是變量的value_counts,同時顯示為計數和百分比頻率。

1638deac-91e2-11ec-952b-dac502259ad0.png

字符串變量

對于字符串類型變量,您將獲得不同(唯一)值、不同百分比、缺失、缺失百分比、內存大小以及所有具有計數表示的唯一值的水平條表示。

16497438-91e2-11ec-952b-dac502259ad0.png

它還會報告與變量相關的任何警告,而不管其數據類型如何

切換按鈕擴展到Overview, Categories, Words, and Characters選項卡。

字符串類型值的概覽選項卡顯示最大-最小中值平均長度、總字符、不同字符、不同類別、唯一和來自數據集的樣本。

165f5ba4-91e2-11ec-952b-dac502259ad0.png

類別選項卡顯示直方圖,有時顯示特征值計數的餅圖。該表包含值、計數和百分比頻率。

16753276-91e2-11ec-952b-dac502259ad0.png

在以表格和直方圖格式呈現數據的方式方面,單詞和字符選項卡與類別選項卡的作用相同,但它可以更深入地處理小寫、大寫、標點符號,特殊字符類別也很重要!

3. 相關性

相關性用于描述兩個變量相互協調移動的程度。在熊貓分析報告中,可以訪問 5 種類型的相關系數:Pearson's r、Spearman's ρ、Kendall's τ、Phik (φk) 和 Cramér's V (φc)

1684a832-91e2-11ec-952b-dac502259ad0.gif

還可以單擊切換按鈕以獲取有關各種相關系數的詳細信息。

4. 缺失值

生成的報告還包含數據集中缺失值的可視化。您將獲得 3 種類型的圖:計數、矩陣和樹狀圖。計數圖是一個基本的條形圖,以 x 軸作為列名,條形的長度代表存在的值的數量(沒有空值)。類似的還有矩陣和樹狀圖。

16ab7a20-91e2-11ec-952b-dac502259ad0.gif

5. 樣本

此部分顯示數據集的前 10 行和最后 10 行。

如何保存報告?

到目前為止,我們已經了解了如何僅使用一行代碼或函數生成DataFrame報告,以及報告包含的所有功能。我們可能有興趣將此分析導出到外部文件,以便可以將其與其他應用程序集成或將其發布到 Web 上。

可以將此報告保存在

  1. HTML格式
  2. JSON 格式

任何格式的保存功能都保持不變,只需在保存時更改文件擴展名。要保存報告,請在配置文件對象上調用 **.to_file()**函數:

profile.to_file("Analysis.html")
profile.to_file("Analysis.json")

16bf203e-91e2-11ec-952b-dac502259ad0.png

高級用法

Pandas profiling生成的報告是一個完整的分析,除了 DataFrame 對象之外,沒有用戶的任何輸入。報告的所有元素都是自動選擇的,默認值是首選。

報告中可能有一些您不想包含的元素,或者您需要為最終報告添加自己的元數據。這個庫的高級用法來了。您可以通過更改默認配置來控制報告的各個方面。

我們可以自定義報告的一些方法。

添加元數據

您可以添加“title”, “description”, “creator”, “author”, “URL”, “copyright_year”, and “copyright_holder”等信息。此信息將出現在數據集概述部分。對于此元數據,將創建一個名為“dataset”的新選項卡。要將此數據添加到報告中,請在 ProfileReport 函數中使用 dataset 參數并將此數據作為字典傳遞:

profile=ProfileReport(df,
title="AgricultureData",
dataset={
"description":"Thisprofilingreportwasgeneratedfor數據STUDIO",
"copyright_holder":"數據STUDIO",
"copyright_year":"2021",
"url":"https://t.1yb.co/HqGX",
},)
profile

16d3f234-91e2-11ec-952b-dac502259ad0.png

我們還可以使用 variables 參數添加有關數據集中使用的變量的信息。這將具有描述的字典作為鍵和值作為另一個具有鍵值對的字典,其中鍵是變量名稱,值作為變量的描述。

variables={
"descriptions":{
"State_Name":"州名",
"District_Name":"區名",
"Crop_Year":"播種的年份",
"Season":"作物年",
"Crop":"播種的是哪種作物?",
"Area":"作物分配了多少面積?",
"Production":"產量多少",
}
}

當您將其添加到ProfileReport函數時,將在概覽部分下創建一個名為“variables”的單獨選項卡:

16ecdcea-91e2-11ec-952b-dac502259ad0.png

報表的控制參數

假設你不想顯示所有類型的相關系數。你可以通過使用相關性配置來簡單地禁用其他系數。這也是一個字典對象,可以傳遞給ProfileReport函數:

profile=ProfileReport(df,
title="AgricultureData",
correlations={
"pearson":{"calculate":True},
"spearman":{"calculate":False},
"kendall":{"calculate":False},
"phi_k":{"calculate":False},
})

同樣,您可以自定義報告的每個部分、HTML 格式、圖表等等。

集成

在通過配置報告的各個方面使您的報告令人驚嘆后,你可能希望以任何方式發布它。或許,你可以將其導出為 HTML 格式并上傳到網絡。但是還有一些其他方法可以使你的報告脫穎而出。

Jupyter 筆記本中的小部件

在你的 Jupyter 筆記本中運行panda profiling時,你將僅在代碼單元格中呈現 HTML。這干擾了用戶的體驗。你可以讓它像一個小部件一樣易于訪問并提供緊湊的視圖。為此,只需在你的配置文件對象上調用**.to_widgets()**:

16fde54e-91e2-11ec-952b-dac502259ad0.gif

Streamlit app

我們也可以將此報告作為Streamlit app的一部分。Streamlit 是一個功能強大的軟件包,可以用最少的代碼構建GUI Web app。這些應用程序是交互式的,幾乎與所有設備兼容。您可以按照以下代碼將你的報告作為streamlit app的一部分:

第 1 步:安裝 streamlit_pandas_profiling

pipinstallstreamlit-pandas-profiling

第 2 步:創建一個 Python 文件并以此格式編寫代碼

importpandasaspd
importpandas_profiling
importstreamlitasst
fromstreamlit_pandas_profilingimportst_profile_report
frompandas_profilingimportProfileReport

df=pd.read_csv("cropsdata.csv",na_values=['='])

profile=ProfileReport(df,
title="AgricultureData",
dataset={
"description":"Thisprofilingreportwasgeneratedfor數據STUDIO",
"copyright_holder":"數據STUDIO",
"copyright_year":"2021",
"url":"https://t.1yb.co/HqGX",
},
variables={
"descriptions":{
"State_Name":"州名",
"District_Name":"區名",
"Crop_Year":"播種的年份",
"Season":"作物年",
"Crop":"播種的是哪種作物?",
"Area":"作物分配了多少面積?",
"Production":"產量多少",
}}
)

st.title("PandasProfilinginStreamlit!")
st.write(df)
st_profile_report(profile)

第 3 步:運行 Streamlit 應用程序

在終端中,輸入:

streamlitrun.py

1715e518-91e2-11ec-952b-dac502259ad0.gif

寫在最后

在本文中,我們一起了解了一個新工具“Pandas Profiling”——從 Pandas DataFrame 生成報告的一站式解決方案。我們探索了此工具的所有功能、不同部分及其內容。然后我們繼續保存生成的報告,稍后,我們查看了該庫的一些高級用例,最后集成了Streamlit應用程序,使報告更具前景和互動性。

參考審核編輯:郭婷


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 數據庫
    +關注

    關注

    7

    文章

    3846

    瀏覽量

    64685
  • 函數
    +關注

    關注

    3

    文章

    4346

    瀏覽量

    62968

原文標題:Pandas profiling 生成報告并部署的一站式解決方案

文章出處:【微信號:DBDevs,微信公眾號:數據分析與開發】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    Mysql數據庫架構:第十三節 Mysql主從復制架構解決方案 #大數據 #數據庫 #mysq#硬聲創作季

    解決方案SQL數據庫MySQL
    學習硬聲知識
    發布于 :2022年10月21日 15:07:04

    Mysql數據庫架構:第十四節 Mysql高可用MHA架構解決方案 #大數據 #數據庫 #my#硬聲創作季

    解決方案SQL數據庫MySQL
    學習硬聲知識
    發布于 :2022年10月21日 15:07:21

    Mysql數據庫架構:第十五節 Mysql高可用MMM架構解決方案 #大數據 #數據庫 #my#硬聲創作季

    解決方案SQL數據庫MySQL
    學習硬聲知識
    發布于 :2022年10月21日 15:07:38

    拔掉數據庫的電源會怎樣?

    拔掉數據庫的電源會怎樣?假設我們拔掉數據庫的電源會怎樣?在日前舉行的阿里云“企業級”云災備解決方案發布會上,阿里云智能技術戰略總監陳緒就來了一場現場“斷電”演示,拔掉了數據庫的電源。(
    發表于 12-29 07:09

    ADO數據庫編程

    ADO數據庫編程是目前最為流行的一種數據庫編程方案。因為,使用ADO,可以很容易的與各種類型的數據庫連接,而且其數據存取
    發表于 08-23 11:29 ?23次下載

    NetApp_閃存解決方案數據庫工作負載帶來的優勢

    NetApp_閃存解決方案數據庫工作負載帶來的優勢
    發表于 12-29 12:01 ?0次下載

    數據庫教程之如何進行數據庫設計

    本文檔的主要內容詳細介紹的是數據庫教程之如何進行數據庫設計內容包括了:1 數據庫設計概述 ,2 數據庫需求分析 ,3 數據庫結構設計 ,4
    發表于 10-19 10:41 ?21次下載
    <b class='flag-5'>數據庫</b>教程之如何進行<b class='flag-5'>數據庫</b>設計

    數據庫管理系統的功能

    本視頻主要詳細介紹了數據庫管理系統的功能,分別是數據定義、數據操作、數據庫的運行管理、數據組織、
    的頭像 發表于 02-22 15:52 ?5963次閱讀

    物聯網解決方案選擇數據庫平臺的四個步驟

    為物聯網解決方案選擇正確的數據庫平臺是一項艱巨的任務。首先,物聯網解決方案可以跨地理區域分布。
    的頭像 發表于 11-29 10:08 ?2375次閱讀

    虹科Panorama SCADA方案數據庫功能的應用

    數據庫系統作為SCADA系統中的重要組成部分,是進行數據采集、處理和存儲的基礎。虹科Panorama SCADA軟件平臺擁有強大的數據庫功能,支持連接各類主流
    的頭像 發表于 02-09 10:28 ?794次閱讀

    python讀取數據庫數據 python查詢數據庫 python數據庫連接

    python讀取數據庫數據 python查詢數據庫 python數據庫連接 Python是一門高級編程語言,廣泛應用于各種領域。其中,Python在
    的頭像 發表于 08-28 17:09 ?1904次閱讀

    Memcached數據庫服務器解決方案

    電子發燒友網站提供《Memcached數據庫服務器解決方案.pdf》資料免費下載
    發表于 09-13 09:44 ?0次下載
    Memcached<b class='flag-5'>數據庫</b>服務器<b class='flag-5'>解決方案</b>

    賽靈思WebP和數據庫解決方案

    電子發燒友網站提供《賽靈思WebP和數據庫解決方案.pdf》資料免費下載
    發表于 09-15 15:06 ?0次下載
    賽靈思WebP和<b class='flag-5'>數據庫</b><b class='flag-5'>解決方案</b>

    oracle數據庫的使用方法

    Oracle數據庫是一種關系型數據庫管理系統,它由Oracle公司開發和維護。它提供了安全、可靠和高性能的數據庫管理解決方案,被廣泛應用于企業級應用和大型
    的頭像 發表于 12-06 10:10 ?1294次閱讀

    Devart: dbForge Edge——您的終極多元數據庫解決方案

    和PostgreSQL數據庫的終極多元數據庫解決方案。 dbForge Edge可以為您帶來什么? 上下文感知SQL代碼補全、智能格式化和重構 具有逐步執行的自動調試功能 200多個真
    的頭像 發表于 01-15 11:48 ?124次閱讀
    Devart: dbForge Edge——您的終極多元<b class='flag-5'>數據庫</b><b class='flag-5'>解決方案</b>
    至尊百家乐贺一航| 历史百家乐路单图| 百家乐娱乐网备用网址| 中国百家乐软件| 百家乐官网游戏网址| 网上百家乐官网做假| 百家乐赌场赌场网站| 新野县| 缅甸百家乐博彩真假| 百家乐算点子打法攻略| 百家乐赌博| 大世界百家乐官网的玩法技巧和规则 | 百家乐有作弊的吗| 大发888注册送58网站| 百家乐官网微笑玩法| 百家乐翻天在线观看| 嘉年华百家乐官网的玩法技巧和规则 | 大发888娱乐场下载| 四方百家乐官网的玩法技巧和规则| 色达县| 保时捷百家乐娱乐城| 现场百家乐官网电话投注| 威尼斯人娱乐城线路| 24山分金吉凶断| 澳门百家乐官网公试打法| 百家乐官网六手变化混合赢家打| 大发888娱乐城存款| 百家乐怎么玩啊| 百家乐官网庄闲和游戏机| 老k棋牌游戏大厅| 百家乐桌布橡胶| 财神百家乐官网的玩法技巧和规则| k7娱乐| 百家乐博彩,| 百家乐群b28博你| 百家乐胜率被控制| 百家乐官网连跳趋势| 博九百家乐官网娱乐城| 大发888娱乐场下载sampling id112| 温州百家乐官网的玩法技巧和规则| 玩百家乐官网是否有技巧|