Python pandas的describe函數(shù)參數(shù)示例詳解
在數(shù)據(jù)分析和數(shù)據(jù)預(yù)處理過(guò)程中,了解數(shù)據(jù)集的基本統(tǒng)計(jì)信息是非常重要的。pandas
庫(kù)提供了一個(gè)名為 describe()
的函數(shù),可以生成數(shù)據(jù)集的描述性統(tǒng)計(jì)信息。本文將詳細(xì)介紹 describe()
函數(shù)的各種參數(shù)及其用法,幫助更好地理解和應(yīng)用這一功能。
describe() 函數(shù)概述
describe()
函數(shù)是 pandas
中的一個(gè)統(tǒng)計(jì)方法,用于生成數(shù)據(jù)集的基本描述性統(tǒng)計(jì)信息,包括均值、標(biāo)準(zhǔn)差、最小值、最大值、25%、50% 和 75% 等。默認(rèn)情況下,它只會(huì)統(tǒng)計(jì)數(shù)值型數(shù)據(jù)的統(tǒng)計(jì)信息,對(duì)于非數(shù)值型數(shù)據(jù)會(huì)輸出計(jì)數(shù)、唯一值數(shù)、出現(xiàn)頻率最高的值和頻率等。
參數(shù)詳解
1percentiles
參數(shù)
percentiles
參數(shù)用于指定所需的百分位數(shù),默認(rèn)值為 [.25, .5, .75]
,即輸出 25%,50% 和 75% 的百分位數(shù)。
import pandas as pd data = {'A': [1, 2, 3, 4, 5]} df = pd.DataFrame(data) # 指定輸出 10%,50% 和 90% 的百分位數(shù) print(df.describe(percentiles=[.1, .5, .9]))
2 include 參數(shù)
include
參數(shù)用于指定要統(tǒng)計(jì)的數(shù)據(jù)類型,可選值為 all
、number
和 object
,默認(rèn)為 None
。如果設(shè)置為 all
,則會(huì)統(tǒng)計(jì)所有數(shù)據(jù)類型;如果設(shè)置為 number
,則只會(huì)統(tǒng)計(jì)數(shù)值型數(shù)據(jù);如果設(shè)置為 object
,則只會(huì)統(tǒng)計(jì)非數(shù)值型數(shù)據(jù)。
import pandas as pd data = {'A': [1, 2, 3, 4, 5], 'B': ['a', 'b', 'c', 'd', 'e']} df = pd.DataFrame(data) # 只統(tǒng)計(jì)數(shù)值型數(shù)據(jù) print(df.describe(include='number'))
3 exclude 參數(shù)
exclude
參數(shù)與 include
參數(shù)相反,用于指定要排除的數(shù)據(jù)類型。
import pandas as pd data = {'A': [1, 2, 3, 4, 5], 'B': ['a', 'b', 'c', 'd', 'e']} df = pd.DataFrame(data) # 排除非數(shù)值型數(shù)據(jù) print(df.describe(exclude='object'))
4 datetime_is_numeric 參數(shù)
datetime_is_numeric
參數(shù)用于指定日期時(shí)間類型是否被視為數(shù)值型數(shù)據(jù),默認(rèn)為 False
。如果設(shè)置為 True
,則日期時(shí)間類型會(huì)被視為數(shù)值型數(shù)據(jù),參與統(tǒng)計(jì)。
import pandas as pd import datetime as dt data = {'A': [dt.datetime(2022, 1, 1), dt.datetime(2022, 1, 2), dt.datetime(2022, 1, 3)]} df = pd.DataFrame(data) # 將日期時(shí)間類型視為數(shù)值型數(shù)據(jù) print(df.describe(datetime_is_numeric=True))
示例代碼
下面是一個(gè)完整的示例代碼,演示了如何使用 describe()
函數(shù)及其各種參數(shù):
import pandas as pd import numpy as np # 創(chuàng)建一個(gè)包含數(shù)值型和非數(shù)值型數(shù)據(jù)的DataFrame data = {'A': [1, 2, 3, 4, 5], 'B': ['a', 'b', 'c', 'd', 'e'], 'C': [1.1, 2.2, 3.3, 4.4, 5.5]} df = pd.DataFrame(data) # 輸出默認(rèn)的描述性統(tǒng)計(jì)信息 print("默認(rèn)的描述性統(tǒng)計(jì)信息:") print(df.describe()) # 輸出指定百分位數(shù)的描述性統(tǒng)計(jì)信息 print("\n指定百分位數(shù)的描述性統(tǒng)計(jì)信息:") print(df.describe(percentiles=[.1, .5, .9])) # 只統(tǒng)計(jì)數(shù)值型數(shù)據(jù)的描述性統(tǒng)計(jì)信息 print("\n只統(tǒng)計(jì)數(shù)值型數(shù)據(jù)的描述性統(tǒng)計(jì)信息:") print(df.describe(include='number')) # 只統(tǒng)計(jì)非數(shù)值型數(shù)據(jù)的描述性統(tǒng)計(jì)信息 print("\n只統(tǒng)計(jì)非數(shù)值型數(shù)據(jù)的描述性統(tǒng)計(jì)信息:") print(df.describe(include='object')) # 排除數(shù)值型數(shù)據(jù)的描述性統(tǒng)計(jì)信息 print("\n排除數(shù)值型數(shù)據(jù)的描述性統(tǒng)計(jì)信息:") print(df.describe(exclude='number')) # 將日期時(shí)間類型視為數(shù)值型數(shù)據(jù)的描述性統(tǒng)計(jì)信息 print("\n將日期時(shí)間類型視為數(shù)值型數(shù)據(jù)的描述性統(tǒng)計(jì)信息:") date_range = pd.date_range(start='2022-01-01', periods=5) data = {'A': np.arange(5), 'B': date_range} df = pd.DataFrame(data) print(df.describe(datetime_is_numeric=True))
實(shí)際應(yīng)用場(chǎng)景
describe()
函數(shù)在實(shí)際數(shù)據(jù)分析中有著廣泛的應(yīng)用場(chǎng)景。
1. 數(shù)據(jù)質(zhì)量檢查
在數(shù)據(jù)分析的初步階段,經(jīng)常需要對(duì)數(shù)據(jù)的質(zhì)量進(jìn)行檢查,包括檢查是否存在缺失值、異常值等情況。describe()
函數(shù)提供了一種快速的方式來(lái)獲取數(shù)據(jù)的描述統(tǒng)計(jì)信息,通過(guò)觀察數(shù)據(jù)的均值、標(biāo)準(zhǔn)差、最小值、最大值等指標(biāo),可以初步判斷數(shù)據(jù)的質(zhì)量情況。
import pandas as pd # 讀取數(shù)據(jù)集 df = pd.read_csv('data.csv') # 查看數(shù)據(jù)的描述統(tǒng)計(jì)信息 description = df.describe() print(description)
通過(guò)觀察描述統(tǒng)計(jì)信息,可以發(fā)現(xiàn)是否存在異常值(如某些列的最大值或最小值明顯偏離正常范圍)、缺失值(計(jì)數(shù)是否一致)等情況,從而進(jìn)一步采取相應(yīng)的數(shù)據(jù)清洗和處理措施。
2. 數(shù)據(jù)分布分析
在數(shù)據(jù)分析過(guò)程中,了解數(shù)據(jù)的分布情況對(duì)于后續(xù)的建模和分析至關(guān)重要。describe()
函數(shù)提供了關(guān)于數(shù)據(jù)分布的基本統(tǒng)計(jì)信息,例如平均值、標(biāo)準(zhǔn)差、分位數(shù)等,可以快速了解數(shù)據(jù)的分布情況。
import pandas as pd import matplotlib.pyplot as plt # 讀取數(shù)據(jù)集 df = pd.read_csv('data.csv') # 查看數(shù)據(jù)的描述統(tǒng)計(jì)信息 description = df.describe() # 繪制柱狀圖展示數(shù)據(jù)分布 description.plot(kind='bar', figsize=(10, 6)) plt.title('Statistics of Data Distribution') plt.xlabel('Statistics') plt.ylabel('Value') plt.xticks(rotation=45) plt.legend(loc='upper right') plt.show()
通過(guò)觀察柱狀圖,可以直觀地了解數(shù)據(jù)的分布情況,例如各個(gè)特征的均值、中位數(shù)、分位數(shù)等信息,從而為后續(xù)的數(shù)據(jù)分析和建模提供參考。
3. 數(shù)據(jù)特征選擇
在進(jìn)行特征工程時(shí),需要選擇對(duì)目標(biāo)變量具有較高相關(guān)性的特征,以提高模型的預(yù)測(cè)性能。describe()
函數(shù)可以快速了解各個(gè)特征之間的相關(guān)性,從而進(jìn)行合理的特征選擇。
import pandas as pd # 讀取數(shù)據(jù)集 df = pd.read_csv('data.csv') # 查看特征之間的相關(guān)性 correlation_matrix = df.corr() # 輸出相關(guān)系數(shù)矩陣 print(correlation_matrix)
通過(guò)觀察相關(guān)系數(shù)矩陣,可以發(fā)現(xiàn)各個(gè)特征之間的相關(guān)性情況,進(jìn)而選擇與目標(biāo)變量具有較高相關(guān)性的特征進(jìn)行建模和分析。
總結(jié)
describe() 函數(shù)是 pandas 中一個(gè)十分實(shí)用的工具,用于快速獲取數(shù)據(jù)集的描述性統(tǒng)計(jì)信息。本文詳細(xì)介紹了該函數(shù)的各種參數(shù)及其用法,包括控制輸出的百分位數(shù)、列類型以及是否將日期時(shí)間列視為數(shù)值型列等。通過(guò)合理使用 describe() 函數(shù),可以快速了解數(shù)據(jù)的分布情況、檢查數(shù)據(jù)質(zhì)量、選擇特征等,為數(shù)據(jù)分析和建模提供重要參考。
到此這篇關(guān)于Python pandas的describe函數(shù)參數(shù)詳解的文章就介紹到這了,更多相關(guān)Python describe函數(shù)參數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
教你十行代碼實(shí)現(xiàn)python向手機(jī)推送通知功能
這篇文章主要介紹了十行代碼實(shí)現(xiàn)python向手機(jī)推送通知,這里使用的是pushplus的服務(wù),代碼也很簡(jiǎn)單,運(yùn)行代碼后也是很快就可以收到消息推送,需要的朋友可以參考下2022-04-04django+js+ajax實(shí)現(xiàn)刷新頁(yè)面的方法
這篇文章主要介紹了django+js+ajax實(shí)現(xiàn)刷新頁(yè)面的方法,結(jié)合實(shí)例形式分析了django實(shí)現(xiàn)ajax刷新頁(yè)面功能的具體步驟與相關(guān)操作技巧,需要的朋友可以參考下2017-05-05查看keras的默認(rèn)backend實(shí)現(xiàn)方式
這篇文章主要介紹了查看keras的默認(rèn)backend實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-06-06Python實(shí)現(xiàn)Kerberos用戶的增刪改查操作
這篇文章主要介紹了Python實(shí)現(xiàn)Kerberos用戶的增刪改查操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-12-12