附录 常用 API 速查
本附录用途:把全书最常用的 API 汇总成速查表,按"环境 / NumPy / Pandas / 清洗 / 可视化 / 时间序列"六类排列。写作与排查时随手翻阅,不需要翻遍全书找一段代码。
⚠️ 提示:本附录解决"怎么写",不解决"怎么选"——例如缺失值填均值还是中位数、异常值删还是截尾,这类判断依据在对应章节有完整说明。
💡 提示:遇到报错先翻 6.4 的排错 FAQ;速查表按"处理链条"组织,从上到下正好是一条完整的数据处理流程。
速查表全景
一、环境与导入
| 操作 |
代码 |
| 创建环境 |
conda create -n ds python=3.11 |
| 激活环境 |
conda activate ds |
| 装库 |
conda install numpy pandas matplotlib seaborn |
| 标准导入 |
import numpy as np / import pandas as pd |
| 绘图导入 |
import matplotlib.pyplot as plt / import seaborn as sns |
| 图表内嵌 |
%matplotlib inline |
二、NumPy 常用
| 操作 |
代码 |
| 列表转数组 |
np.array([1, 2, 3]) |
| 全 0 / 全 1 |
np.zeros((2,3)) / np.ones((2,3)) |
| 等差序列 |
np.arange(0, 10, 2) |
| 等间隔采样 |
np.linspace(0, 1, 5) |
| 随机数 |
np.random.rand(2,3) / np.random.randint(1,100,size=10) |
| 固定随机种子 |
np.random.seed(42) |
| 切片 |
arr[1:4] / arr[::-1] |
| 布尔索引 |
arr[arr > 5] |
| 条件计数 |
(arr > 5).sum() |
| 聚合 |
arr.sum() / arr.mean() / arr.std() / arr.median() |
| 分位数 |
np.percentile(arr, 75) |
| 重塑 |
arr.reshape(3, 4) / arr.reshape(-1, 1) |
| 转置 |
arr.T |
| 拼接 |
np.concatenate([a, b]) / np.vstack([a, b]) |
| 归一化 |
(arr - arr.min()) / (arr.max() - arr.min()) |
三、Pandas 加载与探查
| 操作 |
代码 |
| 读 CSV |
pd.read_csv("orders.csv", encoding="gbk") |
| 读 Excel |
pd.read_excel("orders.xlsx", sheet_name="Sheet1") |
| 结构体检 |
df.info() / df.shape / df.dtypes |
| 样例与统计 |
df.head() / df.describe() |
| 类别频次 |
df["门店"].value_counts() |
四、Pandas 筛选与操作
| 操作 |
代码 |
| 选列 |
df["金额"] / df[["门店", "金额"]] |
| 按标签 |
df.loc["A001"] / df.loc[0:2, "金额"] |
| 按位置 |
df.iloc[0] / df.iloc[0:3, 1:3] |
| 布尔筛选 |
df[df["金额"] > 300] |
| 组合条件 |
df[(df["金额"] > 100) & (df["门店"] == "北京")] |
| 匹配多个值 |
df[df["门店"].isin(["北京", "上海"])] |
| 新增列 |
df["新列"] = 表达式 |
| 排序 |
df.sort_values("金额", ascending=False) |
| 去重 |
df.drop_duplicates(subset=["订单号"]) |
| 列改名 |
df.rename(columns={"旧": "新"}) |
| 删除列 |
df.drop(columns=["备注"]) |
五、缺失与清洗
| 操作 |
代码 |
| 检测缺失 |
df.isnull().sum() |
| 删含缺失行 |
df.dropna(subset=["金额"]) |
| 填中位数 |
df["金额"].fillna(df["金额"].median()) |
| 前后向填充 |
df["值"].ffill() / df["值"].bfill() |
| 线性插值 |
df["值"].interpolate() |
| 转数值 |
pd.to_numeric(df["金额"], errors="coerce") |
| 转日期 |
pd.to_datetime(df["日期"], errors="coerce") |
| 独热编码 |
pd.get_dummies(df["门店"], prefix="门店") |
| IQR 异常检测 |
q1, q3 = s.quantile([0.25, 0.75]); iqr = q3 - q1 |
| 截尾 |
s.clip(upper=q3 + 1.5 * iqr) |
六、分组与合并
| 操作 |
代码 |
| 分组聚合 |
df.groupby("门店")["金额"].sum() |
| 多统计量 |
df.groupby("门店")["金额"].agg(["sum", "mean"]) |
| 组内广播 |
df["组均值"] = df.groupby("门店")["金额"].transform("mean") |
| 透视表 |
df.pivot_table(index="门店", columns="类目", values="金额", aggfunc="sum") |
| 合并 |
pd.merge(a, b, on="键", how="left") |
| 拼接 |
pd.concat([a, b], ignore_index=True) |
七、可视化
| 操作 |
代码 |
| 折线图 |
plt.plot(x, y, marker="o") |
| 柱状图 |
plt.bar(x, y) |
| 散点图 |
plt.scatter(x, y) |
| 直方图 |
plt.hist(data, bins=30) |
| 子图布局 |
fig, axes = plt.subplots(2, 2, figsize=(10, 8)) |
| 保存图片 |
fig.savefig("图.png", dpi=150) |
| Seaborn 分布 |
sns.histplot(df["金额"], kde=True) |
| Seaborn 箱线 |
sns.boxplot(data=df, x="门店", y="金额") |
| Seaborn 热力 |
sns.heatmap(df.corr(), annot=True) |
| 中文显示 |
plt.rcParams["font.sans-serif"] = ["SimHei"] |
八、时间序列
| 操作 |
代码 |
| 时间索引 |
df.index = pd.to_datetime(df.index) |
| 按周汇总 |
df["销售额"].resample("W").sum() |
| 按月汇总 |
df["销售额"].resample("MS").sum() |
| 移动平均 |
df["销售额"].rolling(7, min_periods=1).mean() |
| 星期特征 |
df["星期"] = df.index.dayofweek |
| 是否周末 |
df["是否周末"] = df.index.dayofweek >= 5 |
使用建议:速查表解决"怎么写",决策仍要回到正文——比如缺失值填均值还是中位数、异常值删还是截尾,这些判断的依据在对应章节都有完整说明。遇到报错先翻 6.4 的排错 FAQ。
一个完整的速查示例
假设要把一份订单 CSV 清洗并按门店汇总,借助本附录可以一路查着写:
import pandas as pd
# 三-1 读 CSV(编码不对就换 gbk)
df = pd.read_csv("orders.csv", encoding="utf-8")
# 四-1 探查
df.info()
# 五-1 检测缺失 → 五-4 填中位数
df["金额"] = df["金额"].fillna(df["金额"].median())
# 六-1 按门店分组聚合
result = df.groupby("门店")["金额"].sum().reset_index()
# 七-2 画柱状图
import matplotlib.pyplot as plt
plt.bar(result["门店"], result["金额"])
plt.title("各门店销售额")
plt.show()
这张表里每一步都能在本附录对应小节找到。写得多了,这些 API 会内化成肌肉记忆——速查表的意义是让第一次写对,而不是永远依赖它。
作者与出处
原作者:灏天文库
来源:平台策划编纂
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流