pandas describe詳解——數據統計分析利器

一、基礎概念

pandas是python中一個數據處理庫。它是基於Numpy的庫,擁有比較方便的數據處理和分析能力。其中pandas describe方法是pandas庫中一個比較常用的統計分析方法,它能夠統計數據的基本情況,例如數量、均值、標準差、最小值、最大值等

describe()的默認設置返回統計量:如最大值、最小值、均值、方差等。返回結果的行標籤是統計量,列標記是Series/Dataframe中的列


import pandas as pd

data = {'姓名': ['小明', '小紅', '小張', '小李'],
        '性別': ['男', '女', '男', '女'],
        '年齡': [18, 20, 22, 25],
        '身高': [170.0, 173.5, 180.0, 165.5],
        '體重': [60, 65, 70, 55]}

df = pd.DataFrame(data)     #生成DataFrame

#使用pandas的describe函數輸出數據的基本情況
print(df.describe())

二、常用參數

除了默認參數外,describe()還有許多可選參數,以適應多種情況下的統計和計算。下面是幾個常用的參數:

1、percentiles

使用percentiles參數可以控制得到輸出結果中附帶的分位數,以浮點數數組的形式指定,需要給出分位數的值。默認是[.25,.50,.75],表示輸出25%,50%和75%的分位數。


import pandas as pd

data = {'姓名': ['小明', '小紅', '小張', '小李'],
        '性別': ['男', '女', '男', '女'],
        '年齡': [18, 20, 22, 25],
        '身高': [170.0, 173.5, 180.0, 165.5],
        '體重': [60, 65, 70, 55]}

df = pd.DataFrame(data)     #生成DataFrame

#使用pandas的describe函數輸出數據的基本情況(包含0.1,0.5,0.9的列表)
print(df.describe(percentiles=[.1, .5, .9]))

2、include/exclude

使用include、exclude參數可以篩選出需要或不需要出現在結果中的列數據


import pandas as pd

data = {'姓名': ['小明', '小紅', '小張', '小李'],
        '性別': ['男', '女', '男', '女'],
        '年齡': [18, 20, 22, 25],
        '身高': [170.0, 173.5, 180.0, 165.5],
        '體重': [60, 65, 70, 55]}

df = pd.DataFrame(data)     #生成DataFrame

#使用pandas的describe函數輸出「姓名」列和「年齡」列的基本情況
print(df.describe(include=['object', 'int'],
                  exclude=[np.number]))

3、datetime_is_numeric

使用datetime_is_numeric參數可以判斷是否將datetime類型的數據統計為數值類型數據。如果該參數值為True,則datetime類型會被當作數值型數據進行統計,如果該值為False,則datetime類型不會被當作數值型數據進行統計


import pandas as pd

data = {'時間': ['2022-01-01 10:08:00',
                '2022-01-01 11:00:10',
                '2022-01-01 15:25:08',
                '2022-01-01 18:33:20'],
        '數值': [30.21,54.65,22.53,45.32]}

df = pd.DataFrame(data)     #生成DataFrame
df['時間'] = pd.to_datetime(df['時間'])

#使用pandas的describe函數, 將時間項數據視為非數值型
print(df.describe(datetime_is_numeric=False))

4、include_all

使用include_all參數可以顯示所有的唯一值信息(include參數設置為all的信息),以字典的形式返回所有列的唯一值 unique、唯一值的數量,每個唯一值的數量分別佔總數據樣本的多少


import pandas as pd

data = {'姓名': ['小明', '小紅', '小張', '小李'],
        '性別': ['男', '女', '男', '女'],
        '年齡': [18, 20, 22, 25],
        '身高': [170.0, 173.5, 180.0, 165.5],
        '體重': [60, 65, 70, 55]}

df = pd.DataFrame(data)     #生成DataFrame

#使用pandas的describe函數,輸出唯一值信息
print(df.describe(include='all'))

三、應用場景

1、數據探索性分析

在數據探索性分析中,describe()主要被用於對數據進行初步的分析。例如,我們將可以使用describe()函數獲取一個最初的數據摘要,以便更好地理解數據的基本情況


import pandas as pd

#導入數據集
df = pd.read_csv('data.csv', encoding='utf-8')

#使用pandas的describe函數,查看數據的基本情況
print(df.describe())

2、數據預處理

describe()函數在數據預處理中也是一個很有用的工具,它經常被用來了解數據分布、空值等情況。例如,我們可以使用describe()函數來判斷數據中有無缺失值,以及如何進行處理。


import pandas as pd

#導入數據集
df = pd.read_csv('data.csv', encoding='utf-8')

#判斷數據集中是否有空值
print(df.describe().isnull().any().any())

3、特徵工程

特徵工程是建立機器學習模型的重要步驟。在特徵工程中,describe()函數經常被用來對數據分布、極值等進行分析。


import pandas as pd

#導入數據集
df = pd.read_csv('data.csv', encoding='utf-8')

#使用describe函數,獲取數據的基本情況
df_describe = df.describe()

#獲取每個特徵中極值的差距,並存入新的一列中
df_describe['range'] = df_describe.loc['max'] - df_describe.loc['min']
print(df_describe)

4、數據可視化

描述統計量可以幫助我們快速了解數據的分布情況,通過可視化將統計量呈現出來可以更加直觀。例如,對於離散型數據,我們可以繪製柱狀圖呈現出每個類別的數量;對於數值型數據,我們可以繪製箱線圖來呈現數據的分布情況。


import pandas as pd
import matplotlib.pyplot as plt

#導入數據集
df = pd.read_csv('data.csv', encoding='utf-8')

#使用describe函數,獲取數據的基本情況
df_describe = df.describe()

#對年齡進行數據可視化
df['年齡'].plot(kind='box')
plt.show()

#繪製身高的柱狀圖
df['身高'].value_counts().plot(kind='bar')
plt.show()

四、總結

pandas describe()函數是數據科學家通常用來了解數據集基本情況的函數。它提供了一些標準統計值,如最小值、最大值、方差、中位數、四分位數等,對於探索性數據分析、數據預處理、特徵工程、數據可視化等環節非常有用。

原創文章,作者:QXCIE,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/334763.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
QXCIE的頭像QXCIE
上一篇 2025-02-05 13:05
下一篇 2025-02-05 13:05

相關推薦

  • Python讀取CSV數據畫散點圖

    本文將從以下方面詳細闡述Python讀取CSV文件並畫出散點圖的方法: 一、CSV文件介紹 CSV(Comma-Separated Values)即逗號分隔值,是一種存儲表格數據的…

    編程 2025-04-29
  • Python中讀入csv文件數據的方法用法介紹

    csv是一種常見的數據格式,通常用於存儲小型數據集。Python作為一種廣泛流行的編程語言,內置了許多操作csv文件的庫。本文將從多個方面詳細介紹Python讀入csv文件的方法。…

    編程 2025-04-29
  • 如何用Python統計列表中各數據的方差和標準差

    本文將從多個方面闡述如何使用Python統計列表中各數據的方差和標準差, 並給出詳細的代碼示例。 一、什麼是方差和標準差 方差是衡量數據變異程度的統計指標,它是每個數據值和該數據值…

    編程 2025-04-29
  • Python多線程讀取數據

    本文將詳細介紹多線程讀取數據在Python中的實現方法以及相關知識點。 一、線程和多線程 線程是操作系統調度的最小單位。單線程程序只有一個線程,按照程序從上到下的順序逐行執行。而多…

    編程 2025-04-29
  • Python爬取公交數據

    本文將從以下幾個方面詳細闡述python爬取公交數據的方法: 一、準備工作 1、安裝相關庫 import requests from bs4 import BeautifulSou…

    編程 2025-04-29
  • lsw2u1:全能編程開發工程師的利器

    lsw2u1是一款多功能工具,可以為全能編程開發工程師提供便利的支持。本文將從多個方面對lsw2u1做詳細闡述,並給出對應代碼示例。 一、快速存取代碼段 在日常開發中,我們總會使用…

    編程 2025-04-29
  • Python兩張表數據匹配

    本篇文章將詳細闡述如何使用Python將兩張表格中的數據匹配。以下是具體的解決方法。 一、數據匹配的概念 在生活和工作中,我們常常需要對多組數據進行比對和匹配。在數據量較小的情況下…

    編程 2025-04-29
  • Python刷課:優化學習體驗的利器

    Python刷課作為一種利用自動化技術優化學習體驗的工具已經被廣泛應用。它可以幫助用戶自動登錄、自動答題等,讓用戶在學習過程中可以更加專註於知識本身,提高效率,增加學習樂趣。 一、…

    編程 2025-04-29
  • Python數據標準差標準化

    本文將為大家詳細講述Python中的數據標準差標準化,以及涉及到的相關知識。 一、什麼是數據標準差標準化 數據標準差標準化是數據處理中的一種方法,通過對數據進行標準差標準化可以將不…

    編程 2025-04-29
  • 如何使用Python讀取CSV數據

    在數據分析、數據挖掘和機器學習等領域,CSV文件是一種非常常見的文件格式。Python作為一種廣泛使用的編程語言,也提供了方便易用的CSV讀取庫。本文將介紹如何使用Python讀取…

    編程 2025-04-29

發表回復

登錄後才能評論