数据分析入门实战:老板丢来 5000 行数据,我怎么一步步算出"哪个季度卖得最好"
写作日期:2026-08-04 | 来源:数据分析学习笔记(六步流程 + Pandas 实战)
关键词:Pandas、数据清洗、groupby、透视表、数据分析流程
背景(S)
实习第一天,老板丢给我一个 CSV 文件,里面有 5000 行销售记录(日期、产品、金额),说了一句:"哪个季度卖得最好?明天汇报。"
当时的我大脑一片空白:数据分析第一步是啥?是不是先把数据算一遍?后来才发现,没有数据拿什么算------第一步是取数,而真正的坑,全在取数之后。
踩过的坑(T)
新手最容易犯的 5 个错,我一个没落:
- 以为第一步是"分析"------错了,第一步是取数(先有数据才能分析)。
- 直接对脏数据求和 ------5000 行里有 200 行重复记账,总销售额凭空虚高,多算 200 行的钱。
- 空值填 0------50 行金额是空的,填 0 把月均消费从 2000 拉低到 1900,结论全歪。
sort_values忘写ascending=False------默认升序,卖得最好的产品在最后一行,老板从上往下看,差点把最差的当成最好的。- 透视表把 index / columns 搞反------index 是行(最左边一竖列),columns 是列(表头),反了就是一张"看不懂的表"。
怎么解决的(A)
第一步:先立骨架------数据分析六步流程
取数 → 清洗 → 存储 → 分析 → 可视化 → 报告
不是五步,是六步:最后一步"报告"是图表 + 结论 + 建议------因为老板没耐心看 5000 行数字,他要的是能直接拍板的一句话。
第二步:用 Pandas 把数据读进来
python
import pandas as pd
df = pd.read_csv("销售记录.csv")
print(df.shape) # (5000, 3) = 5000 行 3 列(先行后列)
print(df.head()) # 看一眼前 5 行
DataFrame 就是一张跑在内存里的 Excel 表格:列是字段(日期、产品、金额),行是记录。
第三步:清洗三件套(最重要,别跳过)
python
df = df.drop_duplicates() # ① 去重:删掉 200 行重复记账(必须重新赋值才生效!)
df = df.dropna() # ② 空值少:直接删行
df = df.fillna(df['金额'].mean()) # ② 空值多:填均值(填 0 会拉低均值,别用)
df = df[df['金额'] > 0] # ③ 过滤:金额 > 0,把异常值/退款挡在外面
清洗决定结论可信度:重复数据让总数虚高,空值填错让均值失真------不洗,分析白做。
第四步:分组聚合------"哪个季度卖得最好"的核心
python
# 每个季度总销售额(groupby = 按列分堆,对金额求和)
季度销售 = df.groupby('季度')['金额'].sum()
print(季度销售.sort_values(ascending=False)) # 降序,第一行就是卖得最好的季度
groupby 结构记牢:df.groupby('分组的列')['要算的列'].sum()。想同时算金额和数量,用双括号 df.groupby('产品')[['金额', '数量']].sum()。
第五步:透视表------产品 × 季度交叉看
python
pd.pivot_table(df, values='金额', index='产品', columns='季度', aggfunc='sum')
季度 Q1 Q2 Q3 Q4
产品
奶茶 5000 6000 4000 5000
烤肠 1000 1500 1200 1300
柠檬水 2000 2200 1800 2000
一行代码同时看"哪个产品、哪个季度"------这就是 Excel 透视表的 Pandas 版,也是 groupby 的升级版(一维分组 → 二维交叉)。注意 aggfunc='sum' 一定要写,默认是 mean(平均值),会算成"平均每单",和总销售额差很远。
第六步:报告交付
图(可视化)+ 结论 + 建议。我的结论是:"奶茶 Q2 卖得最好(6000),Q3 跌到 4000,建议排查 Q3 原因,Q2 经验可复制。"
复盘(R)
- 数据从哪来 → 怎么处理 → 给谁用:取数拿数据、清洗保可信、分析出结论、报告给决策者------这就是面试的"数据流三段式"。
- SQL 干重活,Pandas 干细活:数据大到内存装不下(比如 3G),先 SQL 聚合压小,再读回 Pandas 分析。
- 踩坑是最好的面试素材:面试官最爱听"我犯过错然后怎么改",这 5 个坑就是。
一句话总结(面试直接背) :数据分析 = 六步流程(取数→清洗→存储→分析→可视化→报告),Pandas 三件套(drop_duplicates 去重、dropna/fillna 处理空值、df[条件] 过滤),groupby 一维分组、pivot_table 二维交叉------清洗保证结论可信,报告让老板 3 秒拍板。