ITPub博客

首页 > 应用开发 > Python > python pandas常用统计函数总结_包括groupby,crossTab等方法结合使用的比较

python pandas常用统计函数总结_包括groupby,crossTab等方法结合使用的比较

原创 Python 作者:ckxllf 时间:2021-03-29 17:05:03 0 删除 编辑

  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/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-08-16

  • 博文量
    198
  • 访问量
    176994