附录 常用API速查


附录 常用 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 会内化成肌肉记忆——速查表的意义是让第一次写对,而不是永远依赖它。

作者与出处
原作者:灏天文库
来源:平台策划编纂
整理人: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U