← 返回《Python 数据分析实战》
📑 查看全课大纲(第 3 / 101 节)
  1. 1.数据分析基本概念
  2. 2.学习数据分析的一般路线
  3. 3.数据分析的流程
  4. 4.数据类型
  5. 5.环境部署(1)
  6. 6.环境部署(2)
  7. 7.课程介绍
  8. 8.TXT文件操作
  9. 9.JSON文件操作
  10. 10.CSV文件操作
  11. 11.Excel文件操作
  12. 12.数据库及SQL常用语法
  13. 13.数据库基本操作
  14. 14.数据库多表连接
  15. 15.实战:欧洲职业足球数据库分析
  16. 16.爬虫简介
  17. 17.URL管理模块
  18. 18.网页下载模块
  19. 19.网页解析模块(1)
  20. 20.网页解析模块(2)
  21. 21.Scrapy简介
  22. 22.Scrapy使用步骤(1)
  23. 23.Scrapy使用步骤(2)
  24. 24.Scrapy使用步骤(3)
  25. 25.Scrapy使用步骤(4)
  26. 26.实战:获取国内城市空气质量指数数据
  27. 27.NumPy和SciPy介绍
  28. 28.多维数组
  29. 29.多维数组操作
  30. 30.NumPy的常用方法
  31. 31.向量化介绍
  32. 32.向量化及通用函数
  33. 33.实战:2016美国大选分析
  34. 34.数据结构-Series
  35. 35.数据结构-DataFrame
  36. 36.数据结构-Index
  37. 37.Series的索引操作
  38. 38.DataFrame的索引操作
  39. 39.索引操作总结
  40. 40.运算与对齐
  41. 41.函数应用操作(1) -- map
  42. 42.函数应用操作 (2) -- apply applymap
  43. 43.文件读写操作
  44. 44.排序操作
  45. 45.数据清洗--处理缺失数据
  46. 46.数据清洗--处理重复数据
  47. 47.数据清洗--替换数据
  48. 48.常用统计方法(1) -- describe quantile
  49. 49.常用统计方法(2) -- sum mean median count
  50. 50.常用统计方法(3) -- max min idxmax idxmin
  51. 51.常用统计方法(4) -- mad var std cumsum
  52. 52.实战:全球食品数据分析
  53. 53.层级索引
  54. 54.分组与聚合介绍
  55. 55.分组操作(1) -- GroupBy对象及常用聚合操作
  56. 56.分组操作(2) -- 自定义分组及聚合操作
  57. 57.透视表介绍
  58. 58.透视表操作
  59. 59.数据规整(1) -- 数据合并concat
  60. 60.数据规整(2) -- 数据连接merge
  61. 61.数据重构(3) -- 数据重构stack unstack
  62. 62.实战:互联网电影资料库分析
  63. 63.探索性数据分析EDA介绍
  64. 64.EDA的目的
  65. 65.EDA常用工具
  66. 66.Matplotlib绘图基本介绍
  67. 67.Matplotlib画布
  68. 68.散点图和柱状图的绘制
  69. 69.直方图的绘制
  70. 70.矩阵绘图
  71. 71.子图的使用
  72. 72.Matplotlib颜色、标记、线型
  73. 73.Matplotlib坐标刻度、标签、图例、标题
  74. 74.Seaborn介绍
  75. 75.数据集分布可视化(1) -- 单变量分布、双变量分布
  76. 76.数据集分布可视化(2) -- 变量关系可视化
  77. 77.类别数据可视化 -- 类别散布图、类别内数据分布、类别内统计图
  78. 78.交互式数据可视化工具Bokeh介绍
  79. 79.Bokeh绘制散点图、柱状图、盒子图、弦图
  80. 80.Bokeh绘制常用图形元素
  81. 81.D绘图 -- mplot3d
  82. 82.D曲线可视化
  83. 83.D散点图可视化
  84. 84.D柱状图可视化
  85. 85.Pandas绘图
  86. 86.实战:Lending Club借贷数据探索性分析及可视化
  87. 87.机器学习介绍及应用场景
  88. 88.机器学习建模介绍 (1) -- 分类
  89. 89.机器学习建模介绍 (2) -- 回归
  90. 90.机器学习建模介绍 (3) -- 聚类
  91. 91.机器学习分类
  92. 92.机器学习工具scikit-learn
  93. 93.使用scikit-learn的流程
  94. 94.数据集准备及划分
  95. 95.模型选择
  96. 96.数据预处理及特征工程
  97. 97.过拟合与欠拟合
  98. 98.模型调参介绍
  99. 99.模型调参方法
  100. 100.模型测试及评价
  101. 101.实战:通过移动设备行为数据预测性别和年龄

数据分析的流程

约 4 分钟

📺 正在播放小象官方高清录播(支持倍速与清晰度调节)

数据分析的标准五步工业流程

小象实战讲义 · Python数据分析实战

在实际工业界项目中,数据分析绝不是直接打开 Jupyter Notebook 随意写几行代码那么简单。一个成熟、严谨且能够输出商业价值的数据分析项目,必须遵循标准化的全生命周期流程。本节将详细拆解数据分析的五大标准步骤——明确目的、数据获取、数据解析、数据分析与结果呈现,并结合后续章节的技术布局,带你走通数据分析的完整工作流。

💡 核心导读

  • 标准五步工作流:建立“明确目的 ➔ 数据获取 ➔ 数据解析 ➔ 数据分析 ➔ 结果呈现”的系统思维。
  • 业务问题的科学拆解:如何在项目初期提出正确的问题并确定关键业务指标。
  • 课程章节与流程的无缝映射:理解后续 2~8 章技术栈在各分析环节中的具体分工。
  • 端到端小微项目实战:通过一段完整的 Python 代码体验从原始字符串到数据清洗、统计分析与结果呈现的全流程。

1. 数据分析的标准五步闭环

工业界数据分析的生命周期由五个互相衔接的阶段构成,形成一个完整的数据价值流转闭环:

┌─────────────┐   ┌─────────────┐   ┌─────────────┐   ┌─────────────┐   ┌─────────────┐
│ 1. 明确目的  │──>│ 2. 数据获取  │──>│ 3. 数据解析  │──>│ 4. 数据分析  │──>│ 5. 结果呈现  │
│(问题与指标)  │   │(文件/SQL/爬虫)│   │(清洗/规整/格式)│   │(聚合/统计/建模)│   │(图表/业务报告)│
└─────────────┘   └─────────────┘   └─────────────┘   └─────────────┘   └─────────────┘

第一步:明确目的(Define Objectives)

这是决定分析成败最关键的一步。“如果不知道要去哪里,任何一条路都是弯路”。在动工编写任何代码之前,必须先明确以下四个核心问题:

  • 为什么开展分析? —— 业务背景是什么?(如:用户次月留存率出现异常下滑);
  • 要解决什么问题? —— 是定位原因、评估运营活动效果,还是预测下季度销售?
  • 从哪些角度进行拆解? —— 按用户生命周期拆解?按城市地域拆解?还是按产品版本拆解?
  • 采用哪些分析指标与统计方法? —— 设定哪些关键指标(如 GMV、客单价、留存率、转化漏斗)。

第二步:数据获取(Data Collection)

明确了分析目标与所需指标后,需要寻找对应的数据源。常见的数据获取途径包括:

  • 公司内部业务数据库:通过 SQL 查询 MySQL、PostgreSQL 或数据仓库(Hive/ClickHouse);
  • 本地已有文件:解析业务方提供的 CSV、Excel 报表或第三方导出的 JSON 记录;
  • 网络公开数据与爬虫:从政府统计局、行业协会网站爬取公开指标或商品物价数据。

本课程第 2 章(本地数据采集)与第 3 章(网络数据获取)将系统攻克此环节。

第三步:数据解析与清洗(Data Parsing & Cleaning)

原始数据中往往充满各种脏数据:缺失值、重复记录、格式混乱(如日期写成 2026/08/222026-08-22 混杂)以及异常极大值。

  • 本环节的目标是将杂乱无章的原始数据处理成结构清晰、字段干净的表格格式(Tidy Data)。

本课程第 4 章(NumPy/SciPy)与第 5 章(Pandas 基础)将专注于此。

第四步:数据分析(Data Analysis)

在干净的数据集上,运用统计分析与聚合操作深入挖掘数据背后的规律:

  • 计算描述性统计量(均值、中位数、四分位距、标准差);
  • 执行多维度分组聚合(groupby)、交叉透视分析(pivot_table);
  • 分析变量之间的相关性,甚至运用基础模型探寻核心驱动因子。

本课程第 5~6 章(Pandas 高阶)与第 8 章(机器学习入门)将全面展开。

第五步:结果呈现(Data Presentation)

分析的最终成果必须转化为业务团队或决策者看得懂的语言:

  • 使用图表(折线图、柱状图、箱线图、热力图)清晰呈现核心结论;
  • 撰写结构严密的分析报告,给出明确的业务行动建议(Actionable Insights)。

本课程第 7 章(数据可视化)将提供系统化的图表绘制指南。


2. Python 代码实战:端到端模拟五步分析流程

为了加深对这五步流程的理解,我们通过一个完整的 Python 代码示例,模拟某零售门店“分析周末咖啡销售规律并输出总结报告”的完整过程。

# 示例:端到端模拟数据分析五步标准工作流

# 步骤 1:明确目的 -> 目标:统计各品类咖啡的销量占比与客单贡献,找出畅销爆款
print("=== 步骤 1:明确目的完成 -> 分析咖啡品类销量结构与单价分布 ===")

# 步骤 2:数据获取 -> 模拟从本地文件读取的原始脏数据字符串
raw_data = [
    "美式咖啡,25.0,3",
    "拿铁,32.0,5",
    "美式咖啡,25.0,2",
    "卡布奇诺,30.0,4",
    "摩卡,35.0,1",
    "拿铁,32.0,4",
    "美式咖啡,25.0,5",
    "抹茶拿铁,,2",     # 包含缺失价格脏数据
    "拿铁,32.0,3"
]

# 步骤 3:数据解析与清洗 -> 过滤异常/缺失记录并转化为结构化列表
clean_records = []
for item in raw_data:
    parts = item.split(",")
    if len(parts) == 3:
        product, price_str, qty_str = parts
        # 缺失值过滤与类型转换
        if price_str.strip() and qty_str.strip():
            clean_records.append({
                "product": product.strip(),
                "price": float(price_str),
                "quantity": int(qty_str),
                "revenue": float(price_str) * int(qty_str)
            })

print(f"=== 步骤 2 & 3 完成:成功清洗入库 {len(clean_records)} 条有效交易记录 ===")

接下来,我们执行步骤 4(数据分析)与步骤 5(结果呈现):

# 步骤 4:数据分析 -> 按品类进行分组聚合与汇总统计
category_stats = {}
total_store_revenue = sum(r["revenue"] for r in clean_records)
total_cups_sold = sum(r["quantity"] for r in clean_records)

for r in clean_records:
    p = r["product"]
    if p not in category_stats:
        category_stats[p] = {"cups": 0, "revenue": 0.0}
    category_stats[p]["cups"] += r["quantity"]
    category_stats[p]["revenue"] += r["revenue"]

# 步骤 5:结果呈现 -> 输出结构化总结报告
print("\n=== 步骤 5:最终数据分析总结报告 ===")
print(f"全店总销量: {total_cups_sold} 杯 | 总营业额: {total_store_revenue:.2f} 元")
print("-" * 55)
print(f"{'品类名称':<10} | {'总销量(杯)':<10} | {'营业额(元)':<12} | {'营收贡献率':<10}")
print("-" * 55)

# 按营业额从高到低排序呈现
for product, stat in sorted(category_stats.items(), key=lambda x: x[1]["revenue"], reverse=True):
    rev_ratio = (stat["revenue"] / total_store_revenue) * 100
    print(f"{product:<10} | {stat['cups']:<12} | {stat['revenue']:<14.2f} | {rev_ratio:>8.1f}%")

print("-" * 55)
print("💡 业务结论与建议:拿铁与美式咖啡贡献了超过 80% 的营收,建议重点保障咖啡豆供应链供应。")

📝 动手练一练

  1. 案例分析题:某电商 App 的产品经理跑来找数据分析师说:“请帮我把上个月所有用户的点击数据全导出来看看。”作为专业的数据分析师,你应该如何根据“第一步:明确目的”引导产品经理明确真实需求?

    👉 点击查看参考答案

    参考答案: 数据分析师应当礼貌拒绝无目的的大规模数据盲目导出,并引导提问: ① 本次分析的具体业务背景是什么?是某个功能模块的点击率下降,还是新版本上线后的交互评估? ② 希望通过数据回答什么具体问题?(例如:用户在哪个转化漏斗节点的流失率最高?) ③ 需要圈定哪些时间范围、用户群体与核心转化指标?明确目的后再有针对性地提取数据。

  2. 编程练习:假设你有以下清洗后的各部门员工培训考核成绩字典:scores = {"市场部": [85, 90, 78], "技术部": [92, 95, 88, 91], "运营部": [80, 85]}。请编写 Python 代码计算每个部门的平均成绩,并输出平均分最高的部门名称。

    👉 点击查看参考答案

    参考答案

    scores = {"市场部": [85, 90, 78], "技术部": [92, 95, 88, 91], "运营部": [80, 85]}
    
    dept_avg = {dept: sum(s)/len(s) for dept, s in scores.items()}
    top_dept = max(dept_avg, key=dept_avg.get)
    
    print("=== 各部门平均分 ===")
    for dept, avg in dept_avg.items():
        print(f"{dept}: {avg:.1f} 分")
    print(f"\n平均分最高部门: {top_dept} ({dept_avg[top_dept]:.1f} 分)")

本章小结

在本节中,我们建立了数据分析工程实战的标准工作流程:

  • 数据分析是一个包含 明确目的 ➔ 数据获取 ➔ 数据解析 ➔ 数据分析 ➔ 结果呈现 的严谨闭环;
  • 前期的“明确目的”决定了分析的方向与深度,中间的“数据清洗”决定了分析的质量底线,后期的“结果呈现”决定了商业价值的传达效率;
  • 紧跟后续章节,我们将逐个突破每一环节的核心工具与实战代码。

📋 行动清单

  • 在今后的日常分析中,养成“先写分析大纲与目标,再动笔写代码”的工程习惯。
  • 复习本节端到端 Python 脚本,熟练掌握字典聚合与格式化打印的基础语法。

—— 小象教研组

配套学习资源与课件
  • 本节课件:数据分析的流程(PDF · 359KB)
    下载
  • 全套课件打包(第1-5章)(ZIP · 12.8MB)
    下载
  • 全套课件打包(第6-8章)(ZIP · 15MB)
    下载
  • 实战数据集:AppleStore 应用商城分析(ZIP · 329KB)
    下载
  • 实战数据集:女性服装电商分析(ZIP · 2.8MB)
    下载
  • Python 数据分析环境搭建指南(PDF · 2MB)
    下载
  • Scrapy 安装教程(PDF · 12.7MB)
    下载
  • 附加实战项目:AppleStore 应用商城数据分析(ZIP · 0.3MB · ipynb + CSV 数据)
    下载
  • 附加实战项目:银行电话营销数据分析(ZIP · 0.4MB · ipynb + CSV 数据)
    下载
  • 附加实战项目:女性服装电商评论数据分析(ZIP · 2.7MB · ipynb + CSV 数据)
    下载
  • 附加实战项目:美国化学学会杂志数据分析(ZIP · 34.2MB · ipynb + SQLite 数据库)
    下载
🎁 免费学习资源

领取《小象 11GB VIP 课件资料包与大厂真题手册》

包含全套实战 Jupyter 源码、清洗后数据集、大厂高频面试真题与专属学员答疑交流群。

  • 完整 Python / 数据分析 Jupyter 实战源码
  • 大厂真实业务数据集与练习题
  • 微信扫码添加课程顾问,免费获取网盘下载链接
微信二维码:扫码添加课程顾问微信扫码添加顾问