01-数据分析入门-Pandas实战

数据分析入门实战:老板丢来 5000 行数据,我怎么一步步算出"哪个季度卖得最好"

写作日期:2026-08-04 | 来源:数据分析学习笔记(六步流程 + Pandas 实战)

关键词:Pandas、数据清洗、groupby、透视表、数据分析流程

背景(S)

实习第一天,老板丢给我一个 CSV 文件,里面有 5000 行销售记录(日期、产品、金额),说了一句:"哪个季度卖得最好?明天汇报。"

当时的我大脑一片空白:数据分析第一步是啥?是不是先把数据算一遍?后来才发现,没有数据拿什么算------第一步是取数,而真正的坑,全在取数之后。

踩过的坑(T)

新手最容易犯的 5 个错,我一个没落:

  1. 以为第一步是"分析"------错了,第一步是取数(先有数据才能分析)。
  2. 直接对脏数据求和 ------5000 行里有 200 行重复记账,总销售额凭空虚高,多算 200 行的钱。
  3. 空值填 0------50 行金额是空的,填 0 把月均消费从 2000 拉低到 1900,结论全歪。
  4. sort_values 忘写 ascending=False ------默认升序,卖得最好的产品在最后一行,老板从上往下看,差点把最差的当成最好的。
  5. 透视表把 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 秒拍板。

相关推荐
专注API从业者5 小时前
告别人工盯品!借助 Open Claw 搭建电商商品自动化监控与数据分析系统(完整可运行源码)
大数据·运维·数据库·数据分析·自动化
这个DBA有点耶11 小时前
实时数据集成工具选型2026:从CDC到数据同步的完整指南
数据库·数据挖掘·dba
2601_9507607913 小时前
树突状细胞亚群的分类、标志物与功能特征
人工智能·分类·数据挖掘·蛋白
阿里云大数据AI技术14 小时前
从数据平台到智能数据助手:Agentic 数据分析与 API 生产实践
人工智能·数据分析·agent
慧都小项14 小时前
夜间Web回归跑到一半停了?TestComplete 15.83提升批量测试稳定性
前端·测试工具·数据挖掘·回归·汽车·web
逻辑君17 小时前
ANNA 意识驱动 RAG 系统
人工智能·机器学习·数据挖掘
数据智研18 小时前
【数据分享】阿庐风景名胜区(国家级地质公园)边界数据
人工智能·数据分析·数据可视化
CC数分19 小时前
如何用Excel数据透视分析业务?3分钟出报表
数据分析·excel
民乐团扒谱机21 小时前
【读论文】2005 一种旋律转录的分类方法A classification approach to melody transcription[C]
人工智能·分类·数据挖掘
追风少年ii1 天前
课前准备--蛋白建模AlphaFold 2与AlphaFold 3
数据分析·分子动力学·分子对接·结构生物学