0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Pandas profiling數(shù)據(jù)庫的功能及解決方案

數(shù)據(jù)分析與開發(fā) ? 來源:數(shù)據(jù)STUDIO ? 作者:云朵君 ? 2022-03-15 16:31 ? 次閱讀

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

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

安裝

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

pipinstallpandas-profiling

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

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

數(shù)據(jù)集和設(shè)置

看下如何啟動(dòng)pandas_profiling庫并從數(shù)據(jù)框中生成報(bào)告了。首先導(dǎo)入一個(gè)將為其生成報(bào)告的數(shù)據(jù)集。該數(shù)據(jù)集包含State_name、District_name、Crop_year、Season、Crop、Area 和 Production農(nóng)業(yè)數(shù)據(jù)集。

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

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

在討論pandas_profiling之前,先看看數(shù)據(jù)幀的Pandas describe函數(shù)輸出:

df.describe(include='all')

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

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

導(dǎo)入 pandas_profiling

frompandas_profilingimportProfileReport

分析DataFrame有兩種方法:

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

無論采用哪種方式,都將獲得相同的輸出報(bào)告。我正在使用第二種方法為導(dǎo)入的農(nóng)業(yè)數(shù)據(jù)集生成報(bào)告。

profile=ProfileReport(df)
profile

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

動(dòng)畫顯示報(bào)告生成

報(bào)告部分

現(xiàn)在我們一起一一探索生產(chǎn)報(bào)告的所有部分。

1. 概述 Overview

此部分包含 3 個(gè)選項(xiàng)卡:Overview, Warnings, 和 Reproduction。

Overview包括總體統(tǒng)計(jì)的。這包括變量數(shù)(數(shù)據(jù)框的特征或列)、觀察數(shù)(數(shù)據(jù)框的行)、缺失單元格、缺失單元格百分比、重復(fù)行、重復(fù)行百分比和內(nèi)存中的總大小。

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

Warnings選項(xiàng)卡由任何類型的相關(guān)基數(shù),相關(guān)性與其他變量,缺失值零,偏態(tài)變量,以及其他Warnings。

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

reproduction標(biāo)簽只顯示相關(guān)的報(bào)告生成的信息。它顯示分析的開始和結(jié)束時(shí)間、生成報(bào)告所用的時(shí)間、pandas_profiling 的版本以及配置下載選項(xiàng)。

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

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

2. 變量

報(bào)告的這一部分詳細(xì)分析了數(shù)據(jù)集的所有變量/列/特征。顯示的信息因變量的數(shù)據(jù)類型而異。

數(shù)值變量

對(duì)于數(shù)值數(shù)據(jù)類型特征,可以獲得有關(guān)不同值、缺失值、最小值-最大值、平均值和負(fù)值計(jì)數(shù)的信息。還可以獲得直方圖形式的小表示值。

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

切換按鈕來展開的Statistics, Histogram, Common values, Extreme values選項(xiàng)卡。

統(tǒng)計(jì)選項(xiàng)卡包括:

  1. 分位數(shù)統(tǒng)計(jì):Min-Max、百分位數(shù)、中位數(shù)、范圍和 IQR(四分位間距)。
  2. 描述性統(tǒng)計(jì):標(biāo)準(zhǔn)偏差、方差系數(shù)、峰度、均值、偏度、方差和單調(diào)性。

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

直方圖選項(xiàng)卡顯示變量的頻率或數(shù)值數(shù)據(jù)的分布。通用值選項(xiàng)卡基本上是變量的value_counts,同時(shí)顯示為計(jì)數(shù)和百分比頻率。

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

字符串變量

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

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

它還會(huì)報(bào)告與變量相關(guān)的任何警告,而不管其數(shù)據(jù)類型如何

切換按鈕擴(kuò)展到Overview, Categories, Words, and Characters選項(xiàng)卡。

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

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

類別選項(xiàng)卡顯示直方圖,有時(shí)顯示特征值計(jì)數(shù)的餅圖。該表包含值、計(jì)數(shù)和百分比頻率。

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

在以表格和直方圖格式呈現(xiàn)數(shù)據(jù)的方式方面,單詞和字符選項(xiàng)卡與類別選項(xiàng)卡的作用相同,但它可以更深入地處理小寫、大寫、標(biāo)點(diǎn)符號(hào),特殊字符類別也很重要!

3. 相關(guān)性

相關(guān)性用于描述兩個(gè)變量相互協(xié)調(diào)移動(dòng)的程度。在熊貓分析報(bào)告中,可以訪問 5 種類型的相關(guān)系數(shù):Pearson's r、Spearman's ρ、Kendall's τ、Phik (φk) 和 Cramér's V (φc)。

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

還可以單擊切換按鈕以獲取有關(guān)各種相關(guān)系數(shù)的詳細(xì)信息。

4. 缺失值

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

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

5. 樣本

此部分顯示數(shù)據(jù)集的前 10 行和最后 10 行。

如何保存報(bào)告?

到目前為止,我們已經(jīng)了解了如何僅使用一行代碼或函數(shù)生成DataFrame報(bào)告,以及報(bào)告包含的所有功能。我們可能有興趣將此分析導(dǎo)出到外部文件,以便可以將其與其他應(yīng)用程序集成或?qū)⑵浒l(fā)布到 Web 上。

可以將此報(bào)告保存在

  1. HTML格式
  2. JSON 格式

任何格式的保存功能都保持不變,只需在保存時(shí)更改文件擴(kuò)展名。要保存報(bào)告,請(qǐng)?jiān)谂渲梦募?duì)象上調(diào)用 **.to_file()**函數(shù):

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

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

高級(jí)用法

Pandas profiling生成的報(bào)告是一個(gè)完整的分析,除了 DataFrame 對(duì)象之外,沒有用戶的任何輸入。報(bào)告的所有元素都是自動(dòng)選擇的,默認(rèn)值是首選。

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

我們可以自定義報(bào)告的一些方法。

添加元數(shù)據(jù)

您可以添加“title”, “description”, “creator”, “author”, “URL”, “copyright_year”, and “copyright_holder”等信息。此信息將出現(xiàn)在數(shù)據(jù)集概述部分。對(duì)于此元數(shù)據(jù),將創(chuàng)建一個(gè)名為“dataset”的新選項(xiàng)卡。要將此數(shù)據(jù)添加到報(bào)告中,請(qǐng)?jiān)?ProfileReport 函數(shù)中使用 dataset 參數(shù)并將此數(shù)據(jù)作為字典傳遞:

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

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

我們還可以使用 variables 參數(shù)添加有關(guān)數(shù)據(jù)集中使用的變量的信息。這將具有描述的字典作為鍵和值作為另一個(gè)具有鍵值對(duì)的字典,其中鍵是變量名稱,值作為變量的描述。

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

當(dāng)您將其添加到ProfileReport函數(shù)時(shí),將在概覽部分下創(chuàng)建一個(gè)名為“variables”的單獨(dú)選項(xiàng)卡:

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

報(bào)表的控制參數(shù)

假設(shè)你不想顯示所有類型的相關(guān)系數(shù)。你可以通過使用相關(guān)性配置來簡(jiǎn)單地禁用其他系數(shù)。這也是一個(gè)字典對(duì)象,可以傳遞給ProfileReport函數(shù):

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

同樣,您可以自定義報(bào)告的每個(gè)部分、HTML 格式、圖表等等。

集成

在通過配置報(bào)告的各個(gè)方面使您的報(bào)告令人驚嘆后,你可能希望以任何方式發(fā)布它?;蛟S,你可以將其導(dǎo)出為 HTML 格式并上傳到網(wǎng)絡(luò)。但是還有一些其他方法可以使你的報(bào)告脫穎而出。

Jupyter 筆記本中的小部件

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

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

Streamlit app

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

第 1 步:安裝 streamlit_pandas_profiling

pipinstallstreamlit-pandas-profiling

第 2 步:創(chuàng)建一個(gè) 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數(shù)據(jù)STUDIO",
"copyright_holder":"數(shù)據(jù)STUDIO",
"copyright_year":"2021",
"url":"https://t.1yb.co/HqGX",
},
variables={
"descriptions":{
"State_Name":"州名",
"District_Name":"區(qū)名",
"Crop_Year":"播種的年份",
"Season":"作物年",
"Crop":"播種的是哪種作物?",
"Area":"作物分配了多少面積?",
"Production":"產(chǎn)量多少",
}}
)

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

第 3 步:運(yùn)行 Streamlit 應(yīng)用程序

在終端中,輸入:

streamlitrun.py

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

寫在最后

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

參考審核編輯:郭婷


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 數(shù)據(jù)庫
    +關(guān)注

    關(guān)注

    7

    文章

    3712

    瀏覽量

    64023
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4237

    瀏覽量

    61967

原文標(biāo)題:Pandas profiling 生成報(bào)告并部署的一站式解決方案

文章出處:【微信號(hào):DBDevs,微信公眾號(hào):數(shù)據(jù)分析與開發(fā)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Mysql數(shù)據(jù)庫架構(gòu):第十三節(jié) Mysql主從復(fù)制架構(gòu)解決方案 #大數(shù)據(jù) #數(shù)據(jù)庫 #mysq#硬聲創(chuàng)作季

    解決方案SQL數(shù)據(jù)庫MySQL
    學(xué)習(xí)硬聲知識(shí)
    發(fā)布于 :2022年10月21日 15:07:04

    Mysql數(shù)據(jù)庫架構(gòu):第十四節(jié) Mysql高可用MHA架構(gòu)解決方案 #大數(shù)據(jù) #數(shù)據(jù)庫 #my#硬聲創(chuàng)作季

    解決方案SQL數(shù)據(jù)庫MySQL
    學(xué)習(xí)硬聲知識(shí)
    發(fā)布于 :2022年10月21日 15:07:21

    Mysql數(shù)據(jù)庫架構(gòu):第十五節(jié) Mysql高可用MMM架構(gòu)解決方案 #大數(shù)據(jù) #數(shù)據(jù)庫 #my#硬聲創(chuàng)作季

    解決方案SQL數(shù)據(jù)庫MySQL
    學(xué)習(xí)硬聲知識(shí)
    發(fā)布于 :2022年10月21日 15:07:38

    拔掉數(shù)據(jù)庫的電源會(huì)怎樣?

    拔掉數(shù)據(jù)庫的電源會(huì)怎樣?假設(shè)我們拔掉數(shù)據(jù)庫的電源會(huì)怎樣?在日前舉行的阿里云“企業(yè)級(jí)”云災(zāi)備解決方案發(fā)布會(huì)上,阿里云智能技術(shù)戰(zhàn)略總監(jiān)陳緒就來了一場(chǎng)現(xiàn)場(chǎng)“斷電”演示,拔掉了數(shù)據(jù)庫的電源。(
    發(fā)表于 12-29 07:09

    ADO數(shù)據(jù)庫編程

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

    NetApp_閃存解決方案數(shù)據(jù)庫工作負(fù)載帶來的優(yōu)勢(shì)

    NetApp_閃存解決方案數(shù)據(jù)庫工作負(fù)載帶來的優(yōu)勢(shì)
    發(fā)表于 12-29 12:01 ?0次下載

    數(shù)據(jù)庫教程之如何進(jìn)行數(shù)據(jù)庫設(shè)計(jì)

    本文檔的主要內(nèi)容詳細(xì)介紹的是數(shù)據(jù)庫教程之如何進(jìn)行數(shù)據(jù)庫設(shè)計(jì)內(nèi)容包括了:1 數(shù)據(jù)庫設(shè)計(jì)概述 ,2 數(shù)據(jù)庫需求分析 ,3 數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì) ,4
    發(fā)表于 10-19 10:41 ?21次下載
    <b class='flag-5'>數(shù)據(jù)庫</b>教程之如何進(jìn)行<b class='flag-5'>數(shù)據(jù)庫</b>設(shè)計(jì)

    數(shù)據(jù)庫管理系統(tǒng)的功能

    本視頻主要詳細(xì)介紹了數(shù)據(jù)庫管理系統(tǒng)的功能,分別是數(shù)據(jù)定義、數(shù)據(jù)操作、數(shù)據(jù)庫的運(yùn)行管理、數(shù)據(jù)組織、
    的頭像 發(fā)表于 02-22 15:52 ?5768次閱讀

    物聯(lián)網(wǎng)解決方案選擇數(shù)據(jù)庫平臺(tái)的四個(gè)步驟

    為物聯(lián)網(wǎng)解決方案選擇正確的數(shù)據(jù)庫平臺(tái)是一項(xiàng)艱巨的任務(wù)。首先,物聯(lián)網(wǎng)解決方案可以跨地理區(qū)域分布。
    的頭像 發(fā)表于 11-29 10:08 ?2247次閱讀

    虹科Panorama SCADA方案數(shù)據(jù)庫功能的應(yīng)用

    數(shù)據(jù)庫系統(tǒng)作為SCADA系統(tǒng)中的重要組成部分,是進(jìn)行數(shù)據(jù)采集、處理和存儲(chǔ)的基礎(chǔ)。虹科Panorama SCADA軟件平臺(tái)擁有強(qiáng)大的數(shù)據(jù)庫功能,支持連接各類主流
    的頭像 發(fā)表于 02-09 10:28 ?665次閱讀

    互聯(lián)網(wǎng)領(lǐng)域常見的數(shù)據(jù)庫架構(gòu)方案

    數(shù)據(jù)庫設(shè)計(jì)是數(shù)據(jù)庫系統(tǒng)中的重要組成部分。一個(gè)良好的數(shù)據(jù)庫可以給系統(tǒng)帶來清晰的數(shù)據(jù)統(tǒng)計(jì)與數(shù)據(jù)的詳細(xì)分析,同時(shí)給后續(xù)的開發(fā)、拓展和維護(hù)帶來極大的
    的頭像 發(fā)表于 08-25 10:39 ?1190次閱讀
    互聯(lián)網(wǎng)領(lǐng)域常見的<b class='flag-5'>數(shù)據(jù)庫</b>架構(gòu)<b class='flag-5'>方案</b>

    python讀取數(shù)據(jù)庫數(shù)據(jù) python查詢數(shù)據(jù)庫 python數(shù)據(jù)庫連接

    python讀取數(shù)據(jù)庫數(shù)據(jù) python查詢數(shù)據(jù)庫 python數(shù)據(jù)庫連接 Python是一門高級(jí)編程語言,廣泛應(yīng)用于各種領(lǐng)域。其中,Python在
    的頭像 發(fā)表于 08-28 17:09 ?1601次閱讀

    Memcached數(shù)據(jù)庫服務(wù)器解決方案

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

    賽靈思WebP和數(shù)據(jù)庫解決方案

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

    oracle數(shù)據(jù)庫的使用方法

    Oracle數(shù)據(jù)庫是一種關(guān)系型數(shù)據(jù)庫管理系統(tǒng),它由Oracle公司開發(fā)和維護(hù)。它提供了安全、可靠和高性能的數(shù)據(jù)庫管理解決方案,被廣泛應(yīng)用于企業(yè)級(jí)應(yīng)用和大型
    的頭像 發(fā)表于 12-06 10:10 ?1044次閱讀