python pandas常用統計函式總結_包括groupby,crossTab等方法結合使用的比較

ckxllf發表於2021-03-29

  1. 背景描述

  資料分析中經常需要對資料特徵的多種不同方式進行分組或歸類,然後與統計函式結合使用,尋找資訊的規律、資料間的差異或相關性等,從而更好地從資料中挖掘有價值的資訊,服務於企業的運營和特定的問題解決。

  本文主要在這兩方面進行總結:

  資料分析中常用的統計函式(共12個聚合函式-python)的用法

  與4種不同的分組、歸類方法結合使用的效果比較

  2. 資料分析常用統計函式總結

  2.1 常用的統計值對應的python函式

  平均數:np.mean()

  總和:np.sum()

  中位數:np.median()

  最大值:np.max()

  最小值:np.min()

  頻次(計數): np.size()

  方差:np.var()

  標準差:np.std()

  乘積:np.prod()

  協方差: np.cov(x, y)

  偏度係數(Skewness): skew(x)

  峰度係數(Kurtosis): kurt(x)

  正態性檢驗結果: normaltest(np.array(x))

  四分位數:describe() – 顯示25%, 50%, 75%位置上的資料

  2.2 示例程式碼

  **基本使用方法 **

  import numpy as np

  import pandas as pd

  import scipy.stats as ss

  x = [5, 7, 6, 5, 8, 4, 7, 6, 4, 5]

  print("x的平均值:", np.mean(x))

  print("x總和是:", np.sum(x))

  print("x的中位數:", np.median(x))

  print("x的最大值:", np.max(x))

  print("x的最小值:", np.min(x))

  print("x的資料個數:", np.size(x))

  print("x的方差:", np.var(x))

  print("x的標準差:", np.std(x).round(2))

  print("x的乘積:", np.prod(x))

  print("x的偏度(Skewness):", skew(x))

  print("x的正態檢驗結果:", ss.normaltest(np.array(x)))

  3. 聚合函式與分組歸類方法的聯合使用(Python程式碼)

  3.1 DataFrame資料表中分組進行統計 – 與groupby()聯合使用

  # 3.1.1 建立資料表

  import numpy as np

  import pandas as pd

  df = pd.DataFrame({"名稱": ["A", "B", "A", "A", "B", "A"],

  "顏色": ["紅色", "藍色", "紅色", "藍色", "藍色", "紅色"],

  "尺寸": ["大", "大", "小", "小", "大", "大"],

  "厚度": [2, 5, 1, 2, 4, 5],

  "數量": [10, 20, 15, 30, 10, 20]})

  df

  # 3.1.2 使用groupby()根據“名稱”對“數量”進行分組統計

  df.groupby(["名稱"])["數量"].sum()

  

在這裡插入圖片描述

  # 3.1.3 groupby()函式傳入分組列表,對資料進行多層分組統計

  df.groupby(["名稱", "顏色"])["數量"].sum()

  

在這裡插入圖片描述

  # 3.1.4 在之前的基礎上,對被統計的資料傳入列表,達到多層分組分類統計的效果

  df.groupby(["名稱", "顏色"])[["數量", "厚度"]].sum()

  

在這裡插入圖片描述

  3.2 資料表中多層篩選的應用 – 透視表pivot_table的應用

  # 3.2.1 簡單的分組分類統計彙總

  pd.pivot_table(df, values=["數量"], index=["名稱"], columns=["顏色"], aggfunc=np.sum,fill_value=0, margins=True)

   大連做人流哪裡好

在這裡插入圖片描述

  # 3.2.2 多層級的分組和分類統計彙總

  pd.pivot_table(df, values=["數量"], index=["名稱", "尺寸"], columns=["顏色"], aggfunc=np.sum, fill_value=0, margins=True)

  # 3.2.3 多層分組統計不同指標的不同統計量

  pd.pivot_table(df, values=["數量", "厚度"], index=["名稱"], columns=["顏色"], aggfunc={"數量": np.sum, "厚度": np.var}, fill_value=0, margins=True)

  藍色框 – 分組計算厚度的方差

  紅色框 – 分組同步計算數量的總和

  這種方法不但快速便捷,還能在同一個平面內展示不同指標使用不同的統計量計算的結果。

  3.3 四分位數 – describe()的應用方法

  # describe()函式 -- 對資料表中的所有的數值型進行快速的統計

  df.describe()

  

在這裡插入圖片描述

  3.4. 交叉表crossTab()函式

  # 交叉表crossTab()函式 -- 交叉表是用於統計分組頻率的特殊透視表

  tab_ = pd.crosstab(df["名稱"], df["顏色"], margins=True)

  tab_

  

在這裡插入圖片描述

  3、結束語

  綜述以上4種方法,基本上都會認為pivot_table()相對而言是最便捷、靈活且功能強大的統計分析函式,也是在日常工作中常用的方法之一。其實,每種方法都有特色和針對的方向,根據實際情況靈活運用即可。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69945560/viewspace-2765532/,如需轉載,請註明出處,否則將追究法律責任。

相關文章