什么是数据分析:从一堆数字里看出故事

期末考试成绩表有 45 行数字,你一眼看过去就是一堆数。但用 Python 分析一下:数学平均分多少?哪道题全班都错了?男生和女生谁语文平均高?——这些结论靠人眼算要半天,Python 几秒钟就出来。

数据分析就是用程序帮人理解数据。它是 Python 除了写游戏、写网站之外的另一条主要就业方向——数据科学家、产品经理、金融分析师都天天干这个。

数据本身不会说话,是分析让数据开口。
本文核心知识点
  • CSV用逗号分隔的表格数据。
  • pandasPython 数据分析神器。
  • matplotlib画图表的库。
  • 统计平均、最大、最小、排序。
Python 数据分析配图:蓝色渐变背景上彩色柱状图和折线图、放大镜对着电子表格、彩色饼图、连线数据点,右下角一只黑猫剪影
柱状图、饼图、表格:数据分析三件套。

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 图片,每个学生的数学成绩用柱子表示出来。高低一眼就看明白。