当前位置: 首页 > news >正文

9. Pandas 数据统计与汇总分析

Pandas 数据统计与汇总分析

在数据分析的早期阶段,我们往往需要快速了解数据的整体特征,例如:均值、方差、频次分布、变量之间的相关性等。
Pandas 提供了丰富而高效的统计与汇总分析函数,可以帮助我们从原始数据中提炼出核心信息,为后续的建模与决策提供依据。本文将系统讲解这些方法的使用与意义。


1. 常用统计函数

Pandas 的统计函数可以直接作用于 SeriesDataFrame,帮助我们高效地计算各类统计指标。

import pandas as pddata = {"姓名": ["张三", "李四", "王五", "赵六", "孙七"],"年龄": [23, 34, 29, 40, 34],"销售额": [100, 150, 200, 130, 160]
}df = pd.DataFrame(data)
print(df)
   姓名  年龄  销售额
0  张三  23  100
1  李四  34  150
2  王五  29  200
3  赵六  40  130
4  孙七  34  160

1.1 基本统计

Pandas 提供的常见统计方法包括:

  • 均值(mean):衡量数据集中趋势;
  • 最大值 / 最小值(max / min):反映取值范围;
  • 总和(sum):适合计算总销售额、总收入等指标。
print("平均值:\n", df[['年龄','销售额']].mean())
print("最大值:\n", df[['年龄','销售额']].max())
print("最小值:\n", df[['年龄','销售额']].min())
print("总和:\n", df[['年龄','销售额']].sum())
平均值:年龄      32.0
销售额    148.0
dtype: float64
最大值:年龄      40
销售额    200
dtype: int64
最小值:年龄      23
销售额    100
dtype: int64
总和:年龄     160
销售额    740
dtype: int64

这些函数都能一次性对多个列执行操作,输出结果为一个 Series 对象。

1.2 描述性统计

describe() 函数可以一键生成完整的统计摘要,包括:
样本数量(count)、均值(mean)、标准差(std)、四分位数(25%、50%、75%)等。

print("描述性统计:\n", df[['年龄','销售额']].describe())
描述性统计:年龄         销售额
count   5.000000    5.000000
mean   32.000000  148.000000
std     6.363961   37.013511
min    23.000000  100.000000
25%    29.000000  130.000000
50%    34.000000  150.000000
75%    34.000000  160.000000
max    40.000000  200.000000

通过该函数,用户可以快速了解数据的分布与离散程度。若希望同时查看非数值字段的统计信息(如分类数量、最频繁值等),可在参数中加入 include='all'


2. 频次统计

在探索离散型变量(如性别、地区、等级)时,频次统计可以帮助我们理解类别的分布特征。

# 查看年龄频次
print(df['年龄'].value_counts())# 查看唯一值数量
print("唯一年龄数量:", df['年龄'].nunique())
print("唯一年龄列表:", df['年龄'].unique())
年龄
34    2
23    1
29    1
40    1
Name: count, dtype: int64
唯一年龄数量: 4
唯一年龄列表: [23 34 29 40]

value_counts() 默认按频次降序排列,支持参数 normalize=True 查看比例分布;

unique()nunique() 可帮助识别重复值与分类数量,是数据清洗和特征工程中常用工具。


3. 相关性与协方差

在多变量数据分析中,研究不同变量之间的关系是非常关键的一步。相关性(correlation)用于衡量两个变量之间的线性关系强度和方向,而协方差(covariance)则反映它们是否存在同向或反向变化的趋势。

3.1 相关性分析

Pandas 提供了多种计算相关系数的方法,其中最常用的是皮尔逊(Pearson)相关系数,它适用于线性关系数据;斯皮尔曼(Spearman)相关系数则更稳健,适用于非线性关系或含异常值的数据。

# 皮尔逊相关系数(默认)
print("相关性矩阵:\n", df[['年龄','销售额']].corr())# 斯皮尔曼相关系数
print("斯皮尔曼相关性:\n", df[['年龄','销售额']].corr(method='spearman'))
相关性矩阵:年龄       销售额
年龄   1.000000  0.169813
销售额  0.169813  1.000000
斯皮尔曼相关性:年龄       销售额
年龄   1.000000  0.051299
销售额  0.051299  1.000000

相关系数的取值范围在 -1 到 1 之间,越接近 ±1,线性关系越强;值接近 0 则说明两者关系较弱。

3.2 计算协方差

协方差用于判断两个变量是否存在同向或反向变化的趋势。若协方差为正,说明变量总体呈同向变化;若为负,则呈反向变化。不同于相关系数,协方差的数值依赖于变量的量纲,因此不便于直接比较。

print("协方差矩阵:\n", df[['年龄','销售额']].cov())
协方差矩阵:年龄     销售额
年龄   40.5    40.0
销售额  40.0  1370.0

通过比较可知,相关系数是对协方差的标准化形式,更直观地揭示了变量之间的线性依赖关系。


4. 分组统计

在实际分析中,我们常常需要根据某个分类字段对数据进行分组统计,例如按年龄段计算销售额总和或平均值。此时可以使用 groupby 方法。以下示例展示了按年龄分组后的销售额汇总:

grouped = df.groupby('年龄')['销售额'].sum()
print(grouped)
年龄
23    100
29    200
34    310
40    130
Name: 销售额, dtype: int64

groupby 不仅可以实现单一统计指标的计算,还支持通过 agg() 方法对多个指标进行聚合。例如:

gr_agg = df.groupby('年龄').agg({'销售额':['mean','sum','count']})
print(gr_agg)
      销售额           mean  sum count
年龄                  
23  100.0  100     1
29  200.0  200     1
34  155.0  310     2
40  130.0  130     1

这种方式非常灵活,可同时计算多个统计指标,也可以实现多字段分组分析,如 groupby(['地区', '性别'])


5. 小结

  • 基础统计meansummaxmindescribe 等帮助快速了解数据特征;
  • 频次与唯一值value_countsuniquenunique 分析分类分布;
  • 变量关系分析corrcov 揭示数据之间的关联结构;
  • 分组聚合groupby 提供灵活的分层统计方式,是构建特征与业务指标的核心工具。

熟练运用这些方法,可以让我们在面对复杂的数据集时迅速发现规律、识别异常,并为后续的可视化、建模与预测提供坚实的分析支撑。


上一篇:8. Pandas 日期与时间序列数据处理
下一篇:10. Pandas 分组与聚合分析(groupby)

http://www.dtcms.com/a/447537.html

相关文章:

  • 住房和城乡建设部网站行标wordpress 登
  • 南宁建站方案化工网站模板免费下载
  • Sora 2为什么会火?
  • 专门做正品的网站有哪些wordpress与cms哪个好用
  • 舟山市城市建设档案馆网站广东网站建设哪里有
  • 织梦教育网站开发西安淘宝网站建设公司哪家好
  • 公司网站制作流程2016保定小程序开发公司
  • JAVA——线程池
  • 做网站方面wordpress使用端口
  • 邵阳县做网站企业门户网站建设论文
  • 武冈网站建设鹤山市网站建设公司
  • 网站集约化建设方案2345网址导航官网下载大全
  • 企业建设网站的资金策划做赌场网站犯法么
  • 时延抖动的物理本质
  • 外包程序员的出路优化算法 网站
  • 绵阳做网站的WordPress投票主题系统
  • 网站开发实训周报wordpress wdlog主题
  • 没有注册公司可以做网站吗seo做的好的网站 知乎
  • 【C++实战(73)】解锁C++游戏开发新姿势:SFML实战入门
  • 汕头网站定制南京市住房和城乡建设厅网站
  • app ui设计欣赏 网站牡丹江哈尔滨网站建设
  • 怎么建设网站电话系统开发是什么
  • Linux开发工具(二)
  • wordpress模板站西平县住房城乡建设局网站
  • (三) Dotnet为AI控制台对话添加依赖注入等集成
  • nat123做视频网站大连网站制作
  • 动易网站后台编辑器无效问题上海网站制作全包
  • 网站开发学习什么兰州市城市建设设计院官网
  • 滕州网站优化旅游网站建设有哪些不足
  • 外贸站群wordpress图片体积