Python 数据分析入门:集中趋势与离散程度
做数据分析时,常遇到几个核心问题:一组数据的'平均水平'到底是多少?为什么两组数据均值差不多,实际情况却完全不同?如何判断数据是否稳定?有没有异常值?
这些问题都离不开两个统计学基础概念:集中趋势和离散程度。咱们用一个简单的班级成绩案例,从 0 到 1 学会这些指标,并用 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 班虽然也有高分,但高低差距很大。
这说明分析数据时,不能只看平均值,还要看数据的分散程度。
什么是集中趋势?
集中趋势描述的是数据的'中心位置'。简单理解就是:这组数据大多数值,整体上靠近哪里?
均值(Mean)
平时说的'平均数'。
- 公式:所有数据之和 / 数据个数
- Pandas 写法:
df['列名'].mean() - 特点:最常用、直观,但对异常值敏感。如果数据里有特别大或特别小的值,均值容易被拉偏。
中位数(Median)
排序后位于中间位置的值。
- Pandas 写法:
df['列名'].median() - 特点:不容易被极端值拉偏。如果有异常值(如成绩异常、消费爆发),中位数通常比均值更可靠。
众数(Mode)
出现次数最多的值。
- Pandas 写法:
df['列名'].mode() - 特点:适合看'最常见的水平'。可能有多个众数,也可能没有(如果每个值只出现一次)。
中列数(Midrange)
最大值和最小值的平均值。

