Python 数据分析入门:集中趋势与离散程度详解
在做数据分析时,我们常遇到这样的问题:一组数据的'平均水平'到底是多少?为什么两组数据均值差不多,但实际情况完全不同?如何判断数据是否稳定,波动大不大?
这些问题,本质上离不开两个统计学基础概念:集中趋势和离散程度。本文用一个班级成绩案例,带你从原理到 Pandas 实战,彻底搞懂这些指标。
一、先看一个问题:平均分一样,情况就一样吗?
假设有两个班级的数学成绩:
a_scores = [85, 82, 88, 84, 86, 83, 87, 85, 84, 86]
b_scores = [100, 60, 90, 70, 95, 65, 85, 85, 85, 85]
很多人第一反应是看平均分。但问题是:
- 平均分差不多,就说明水平一样吗?
- 哪个班更稳定?
- 哪个班差距更大?
答案显然不是。A 班成绩比较集中,整体稳定;B 班虽然也有高分,但高低差距很大。
这说明分析数据时,不能只看平均值,还要看数据的分散程度。
二、什么是集中趋势?
集中趋势描述的是数据'中心位置'的指标,简单理解就是这组数据大多数值靠近哪里。
1. 均值(Mean)
平时说的'平均数'。
- 公式:所有数据之和 / 数据个数
- Pandas 写法:
df['列名'].mean() - 特点:最直观,但对异常值敏感。如果数据里有特别大或小的值,均值容易被拉偏。
2. 中位数(Median)
排序后位于中间位置的值。
- Pandas 写法:
df['列名'].median() - 特点:不容易被极端值拉偏。在有异常值(如消费爆发、销售异常)时,中位数往往比均值更可靠。
3. 众数(Mode)
出现次数最多的值。
- Pandas 写法:
df['列名'].mode() - 特点:适合看'最常见的水平'。可能有多个众数,也可能没有(如果每个值只出现一次)。
4. 中列数(Midrange)
最大值和最小值的平均值。


