什么是数据分析:从一堆数字里看出故事
期末考试成绩表有 45 行数字,你一眼看过去就是一堆数。但用 Python 分析一下:数学平均分多少?哪道题全班都错了?男生和女生谁语文平均高?——这些结论靠人眼算要半天,Python 几秒钟就出来。
数据分析就是用程序帮人理解数据。它是 Python 除了写游戏、写网站之外的另一条主要就业方向——数据科学家、产品经理、金融分析师都天天干这个。
数据本身不会说话,是分析让数据开口。
- CSV用逗号分隔的表格数据。
- pandasPython 数据分析神器。
- matplotlib画图表的库。
- 统计平均、最大、最小、排序。
CSV 文件:最常见的数据格式
CSV = Comma-Separated Values,逗号分隔值。本质就是一个文本文件,每行一条记录,字段之间用逗号隔开。
姓名,数学,语文,英语
小明,95,88,92
小红,87,95,90
小刚,78,82,85
用 Excel 能打开,用记事本也能打开。世界上 90% 的表格数据,都可以导出成 CSV 格式。
用 Python 读 CSV
Python 自带 csv 模块就能读,但更常用的是 pandas——它是数据分析界的"瑞士军刀"。
import pandas as pd
df = pd.read_csv("scores.csv")
print(df)
三行代码,整个 CSV 就变成一个叫 DataFrame 的表格对象,存在变量 df 里。df 可以像 Excel 一样筛选、计算、画图。
算平均、最大、最小
print(df["数学"].mean()) # 数学平均分
print(df["数学"].max()) # 数学最高分
print(df["数学"].min()) # 数学最低分
print(df["语文"].describe()) # 一次性输出所有统计量
`.describe()` 会一次性给出每一列的计数、平均值、标准差、最小值、最大值和四分位数——这是你拿到一个新数据集最先要跑的命令。
用 matplotlib 画第一张柱状图
数字算出来了,但人眼看数字不如看图直观。matplotlib 是 Python 最常用的画图库。
import matplotlib.pyplot as plt
plt.bar(df["姓名"], df["数学"])
plt.title("数学成绩")
plt.xlabel("姓名")
plt.ylabel("分数")
plt.savefig("math_scores.png")
跑一下,当前目录就多了一张 math_scores.png 图片,每个学生的数学成绩用柱子表示出来。高低一眼就看明白。
实战:分析班级期末考试成绩
综合项目:假设你有一份全班期末成绩 CSV,做这几件事:
- 算出三门课各自的平均分。
- 找出总分最高的三个同学。
- 画一张柱状图展示全班总分排名。
- 算一下数学成绩的中位数。
df["总分"] = df["数学"] + df["语文"] + df["英语"]
top3 = df.nlargest(3, "总分")
print(top3[["姓名", "总分"]])
plt.bar(df["姓名"], df["总分"])
plt.title("全班总分")
plt.savefig("total_scores.png")
这个小项目做完,孩子就掌握了数据分析的完整流程:读数据、算指标、出图表。以后遇到任何表格数据,他都敢打开 Python 分析一下。
- read_csv读 CSV 文件。
- mean/max/min基础统计。
- nlargest取前 N 大。
- plt.bar画柱状图。
数据分析之后:Python 的另一条路
学完数据分析,孩子会发现 Python 不只是写竞赛题的工具,它还能:
- 爬虫从网上抓数据下来分析。
- AI 入门机器学习库 scikit-learn 也是 Python。
- 可视化做交互式数据大屏。
如果孩子对数字敏感、喜欢观察和总结规律,数据分析这条路比竞赛更适合他。未来做数据分析师、产品经理、金融科技,都是这条路延伸出去的职业。
竞赛是一条路,数据分析是另一条。Python 两条路都通。