附录目标

  • 快速回顾全书核心知识点
  • 遇到问题时快速定位解决方案
  • 业务场景 → 分析方法 → 工具函数 一站式查询
  • 可打印、可收藏、可贴在工位

一、核心函数卡片

1.1 数据读取与概览

函数 做什么 什么时候用 输出什么
pd.read_csv() 读取CSV文件 拿到CSV格式数据的第一件事 DataFrame
pd.read_excel() 读取Excel文件 业务报表、多Sheet数据 DataFrame
df.head() 显示前N行 刚读完数据,确认加载正确 表格
df.info() 全身体检报告 必做:了解行数、列数、类型、缺失 文本报告
df.describe() 数值列统计摘要 了解数值分布、找异常值 统计表

1.2 数据清洗

函数 做什么 什么时候用 关键参数
df.isnull().sum() 统计每列缺失数量 发现缺失值
df.dropna() 删除缺失值 缺失极少(❤️%) subset, how
df.fillna() 填充缺失值 缺失较多,需要保留数据 value, method
df.duplicated() 检测重复行 怀疑有重复数据 subset, keep
df.drop_duplicates() 删除重复行 确认需要去重 subset, keep
df.astype() 转换数据类型 类型不对时 {'col': 'int'}
pd.to_datetime() 转成日期格式 日期存成了文本或数字 format

1.3 探索性分析

函数 做什么 什么时候用 输出什么
df['col'].unique() 列出所有不同取值 检查分类变量有哪些值 列表
df['col'].value_counts() 统计每个值的频次 看分布、找脏数据 频次表
df.groupby() 分组聚合 对比不同组的表现 GroupBy对象
df.pivot_table() 透视表 多维度交叉分析 透视表
df.corr() 计算相关系数 找变量之间的关系 相关系数矩阵

1.4 可视化

函数 做什么 什么时候用 适用场景
plt.plot() 折线图 看趋势、时间序列 销售额变化
plt.bar() / sns.barplot() 柱状图 对比类别大小 品牌销量对比
plt.hist() / sns.histplot() 直方图 看单变量分布 价格分布
sns.boxplot() 箱线图 对比多组分布、找异常 不同城市价格对比
sns.scatterplot() 散点图 看两个变量关系 里程vs价格
sns.heatmap() 热力图 看相关性矩阵 特征相关性
sns.pairplot() 散点图矩阵 快速扫描多变量关系 探索性分析

1.5 建模

函数/类 做什么 什么时候用 关键参数
train_test_split() 划分训练/测试集 建模前必做 test_size, random_state
LinearRegression() 线性回归 基线模型、需解释性
DecisionTreeRegressor() 决策树回归 可解释、非线性 max_depth
RandomForestRegressor() 随机森林回归 追求精度 n_estimators
LogisticRegression() 逻辑回归 二分类基线 class_weight
RandomForestClassifier() 随机森林分类 分类精度优先 n_estimators
KMeans() K-Means聚类 用户分群、发现分组 n_clusters
mean_squared_error() 计算MSE 评估回归模型
accuracy_score() 计算准确率 评估分类模型(平衡数据)
classification_report() 完整分类报告 评估分类模型 输出P/R/F1

1.6 时间序列

函数/方法 做什么 什么时候用 关键参数
pd.to_datetime() 转日期格式 日期是文本/数字时 format
df.set_index('date') 设日期为索引 时间序列分析前
df.resample('M').mean() 重采样 改变时间粒度 频率(‘D’,‘W’,‘M’)
df.shift(1) 滞后 创建滞后特征 periods
SimpleExpSmoothing() 简单指数平滑 平稳数据预测 alpha
Holt() Holt趋势模型 有趋势无季节 trend
ExponentialSmoothing() Holt-Winters 有趋势有季节 seasonal

二、业务场景 → 分析方法对照表

2.1 用户增长与运营

业务问题 分析方法 核心指标 可视化 何时用
用户增长是快还是慢? 趋势分析 日活/月活增长率 折线图 定期监控
哪个渠道用户质量最好? 分组对比 各渠道留存率、LTV 柱状图 渠道评估
用户在哪一步流失最多? 漏斗分析 各环节转化率 漏斗图 优化转化路径
应该分成哪几类用户运营? 聚类(RFM) R、F、M三个维度 散点图/雷达图 精细化运营
哪些用户快要流失了? 分类(流失预警) 召回率、精确率 混淆矩阵 提前干预

2.2 销售与商品

业务问题 分析方法 核心指标 可视化 何时用
整体销售趋势如何? 趋势分析 销售额、销量 折线图 月度/季度复盘
哪个商品卖得最好? 排序+占比 销售额Top N、集中度 条形图/饼图 商品运营
哪些因素影响价格? 相关性分析 相关系数 热力图 定价策略
商品定价合理吗? 回归(价格预测) MAE、R² 散点图(实际vs预测) 动态定价
哪些商品常一起买? 关联规则 支持度、置信度 网络图 捆绑销售

2.3 风控与异常

业务问题 分析方法 核心指标 可视化 何时用
哪些交易可能是欺诈? 异常检测 召回率、精确率 箱线图/散点图 实时风控
用户的信用风险多高? 分类(评分卡) AUC、KS值 ROC曲线 信贷审批
数据里有没有异常值? 描述性统计/IQR 最大值、最小值 箱线图 数据清洗
哪些订单是刷单? 聚类(异常检测) 轮廓系数 散点图 反作弊

2.4 财务与预算

业务问题 分析方法 核心指标 可视化 何时用
下个月/季度能赚多少? 时间序列预测 MAPE、RMSE 预测vs实际折线图 预算规划
成本主要花在哪里? 构成分析 各成本项占比 饼图/堆叠柱状图 成本控制
和去年同期比怎么样? 同比/环比分析 同比增长率 双柱对比图 业绩复盘

2.5 产品与体验

业务问题 分析方法 核心指标 可视化 何时用
新功能效果好吗? A/B测试 p值、效应量 箱线图对比 功能上线后
用户最喜欢哪个功能? 频次分析 使用次数、使用时长 条形图 产品迭代
用户满意度怎么样? 描述性统计 平均分、NPS 直方图 服务质量监控

三、常见问题 → 解决方案对照表

3.1 数据清洗类

问题 现象 解决方案 对应函数/方法
中文乱码 显示ä½ å¥½ 换编码 encoding='gbk''utf-8'
手机号前导0丢失 13800138000变成1.38e10 读成字符串 dtype={'phone': str}
日期格式不对 20240115 无法做日期运算 转日期格式 pd.to_datetime(format='%Y%m%d')
数字里混了逗号 "10,000" 无法转数字 先去逗号 str.replace(',', '')
数字里混了单位 "25岁" 无法转数字 提取数字 str.extract('(\d+)')
缺失值用-表示 info()显示object类型 替换为NaN df.replace('-', np.nan)
缺失值太多 某列缺失>50% 删除该列 df.drop(columns=['col'])
存在完全重复行 多行一模一样 去重 df.drop_duplicates()
存在异常值 age列出现200 删除或用中位数替换 业务判断 + IQR/Z-score
Excel有合并单元格 读出来很多NaN 向下填充 df.fillna(method='ffill')
Excel前几行不是数据 前3行是标题/Logo 跳过行 skiprows=3

3.2 分析类

问题 现象 解决方案 注意事项
均值不能代表典型值 均值>中位数很多 用中位数 右偏分布
不知道用均值还是中位数 数据有极端值 用中位数 或两者都汇报
两组数据差异是否显著 看起来有差别 t检验/卡方检验 需要统计检验
变量之间有关系吗 想探索关系 散点图 + 相关系数 先画图再看数
多个变量相关性 想看整体关系 热力图 数值型变量
数据分布不对称 直方图一边长尾 log变换 建模前处理
不知道数据有几个峰 直方图可能有多个峰 检查是否存在子群体 分组分析
只有整体数据,没有细分的类别 想比较不同组 用业务规则构造分组 时间组/数值分箱

3.3 建模类

问题 现象 解决方案 调整方向
训练集好,测试集差 过拟合 降低模型复杂度 减小max_depth,增加正则化
训练集差,测试集也差 欠拟合 增加模型复杂度 增大max_depth,增加特征
类别不平衡 正类只占1% 过采样/欠采样 SMOTE、class_weight
不同特征量纲差异大 年龄vs收入 标准化/归一化 StandardScaler
分类变量不知道怎么处理 品牌、城市等 编码 独热编码/标签编码
特征太多 >100列 特征选择 方差阈值/特征重要性
树模型效果不好 调参没用 尝试集成/其他算法 随机森林 → XGBoost
不知道选哪个模型 多个候选 交叉验证 选验证集分数最高的
预测价格总是偏低 模型有偏 检查是否用了log变换 预测结果需要变换回来
模型不稳定 每次训练结果不同 固定随机种子 random_state=42

3.4 时间序列类

问题 现象 解决方案 说明
随机划分导致泄露 用未来预测过去 按时间顺序划分 前80%训练,后20%测试
不知道怎么选预测方法 数据无趋势无季节 移动平均/指数平滑 最简单开始
数据有趋势 整体向上或向下 Holt趋势模型 或做差分
数据有季节性 每年/每月固定周期 Holt-Winters 或SARIMA
季节性强度不确定 不知道加法还是乘法 看波动幅度 波动随趋势放大用乘法
预测结果滞后 预测总是比实际慢半拍 调整参数/换模型 增大alpha
需要预测的步数多 预测未来12个月 递归预测 vs 直接预测 多步预测误差会累积

3.5 可视化类

问题 现象 解决方案 替代方案
类别太多 >10个,柱子挤在一起 水平条形图 排序后只显示Top N
饼图扇区太多 超过5个 换成条形图 合并“其他”类别
Y轴截断 差异被夸大 Y轴从0开始 如需截断,明确标注
颜色难以区分 红绿色盲无法分辨 用蓝+橙 加形状区分
3D图表 遮挡、扭曲 用2D 绝对不用3D
双Y轴引起误解 两个量纲放在一起 分开画图 或用标准化后对比
数据点太多重叠 >10000点 随机抽样/六边形分箱 密度图

四、速查表使用指南

4.1 遇到问题时

1. 先看“常见问题 → 解决方案对照表”
2. 定位问题类型(数据清洗/分析/建模/时间序列/可视化)
3. 找到对应解决方案
4. 按方案操作或向AI描述需求

4.2 不知道用什么方法时

1. 先看“业务场景 → 分析方法对照表”
2. 找到你的业务问题(用户增长/销售/风控/财务/产品)
3. 查看推荐的分析方法、核心指标、可视化
4. 再查“核心函数卡片”了解具体工具

4.3 向AI描述需求时

你想做什么 参考这句话
数据清洗 “读取CSV时中文乱码,换GBK编码”
缺失值 “用中位数填充年龄列的缺失值”
分组对比 “按品牌分组,计算每个品牌的平均价格”
可视化 “画一个箱线图,对比不同变速箱类型的价格分布”
建模 “用随机森林训练价格预测模型,输出特征重要性”
聚类 “对用户做K-Means聚类,K=4,然后分析每组特征”
时间序列 “用Holt-Winters预测未来6个月的销售额”

五、打印版(可裁剪)

┌─────────────────────────────────────────────────────────┐
│  【数据清洗速查】                                        │
│  乱码 → 换编码(utf-8/gbk)                               │
│  丢0 → 读成字符串                                        │
│  日期不对 → to_datetime                                 │
│  缺失值 → dropna(少) / fillna(多)                      │
│  重复 → drop_duplicates                                 │
│  异常 → IQR / Z-score                                   │
└─────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────┐
│  【可视化速查】                                          │
│  趋势 → 折线图                                           │
│  对比 → 柱状图                                           │
│  占比 → 饼图(≤5类) / 条形图(>5类)                      │
│  分布 → 直方图/箱线图                                    │
│  关系 → 散点图                                           │
│  相关 → 热力图                                           │
└─────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────┐
│  【建模速查】                                            │
│  回归(预测数字) → 线性回归(基线) / 随机森林(精度)       │
│  分类(预测类别) → 逻辑回归(基线) / 随机森林(精度)       │
│  聚类(发现分组) → K-Means                               │
│  过拟合 → 降低复杂度 / 增加数据                          │
│  欠拟合 → 增加复杂度 / 增加特征                          │
└─────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────┐
│  【评估指标速查】                                        │
│  回归:MAE(平均误差) / RMSE(大误差惩罚) / R²(解释力)   │
│  分类:准确率(平衡) / 召回率(抓坏人) / 精确率(不误伤)  │
│        F1(P/R调和) / AUC(排序能力)                     │
│  时序:MAE / RMSE / MAPE(相对误差)                      │
└─────────────────────────────────────────────────────────┘

下一节预告:A2 如何向AI描述需求(提示词模板库)—— 学会用自然语言让AI帮你完成数据分析任务。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐