附录目标:
- 快速回顾全书核心知识点
- 遇到问题时快速定位解决方案
- 业务场景 → 分析方法 → 工具函数 一站式查询
- 可打印、可收藏、可贴在工位
一、核心函数卡片
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帮你完成数据分析任务。
所有评论(0)