实现收尾(Codex 代写,用户授权): - impute_missing 的 mode 分支改为返回新表(原先就地改调用方的 DataFrame,另外四支都返回新对象) - detect_outliers 补入参类型校验(§4.7:非法类型抛 TypeError,不静默兜底): 接受 DataFrame / Series / list / tuple / ndarray;tuple 同时补进 is_ld_array; dict 不再被接受(以前靠 pd.DataFrame() 碰巧能过,见决策 33) 测试: - 摘掉最后一条 xfail(mode 就地改)并加强断言 - 新增 3 条:非法类型抛 TypeError、元组按一维数组型处理、全 NaN 列与单元素列不抛异常 - 64 passed / 42 skipped / 0 xfailed(xfail 清零,7 条契约全部转正);ruff 0;pyright 0 文档: - 新增 docs/algorithms/detect_outliers.md —— 第一张 S 档函数卡片(roadmap 要求约 15 张) 除模板九节外多记三条判断:为什么不返回 Result、非数值列恒 False 的两条备选路各错在哪、 ddof 口径与 stats.zscore 不一致(前者 1、后者 0,小样本差一成) - 新增 examples/01_clean_and_describe.py —— 六个 data 函数的最小用法,实测跑通(exit 0) - STATUS.md:E 节收尾、验证结果表、下一步重写(transform/standardize 的待定项)、决策 33 - CHANGELOG.md:把 [Unreleased] 里重复 7 次的 Added/Changed 小节合并成 Added/Changed/Notes; 并修掉上轮遗留的缺陷 —— pyright 那条 bullet 的开头被吞掉,半句挂在 ruff 那条后面
25 lines
822 B
Markdown
25 lines
822 B
Markdown
# 例子
|
|
|
|
每个模块一个能直接跑的最小例子。
|
|
|
|
> **当前状态**:这些脚本是**用法规格**,函数实现填好之前跑不通
|
|
> (会抛 `NotImplementedError`)。实现顺序见 `docs/03-roadmap.md`。
|
|
>
|
|
> `00_quickstart.py` 与 `01_clean_and_describe.py` 用到的函数大多已实现,可以跑;
|
|
> 两者末尾各有 `TODO(L0)`,等 `stats` / `viz` 补齐。
|
|
|
|
| 文件 | 对应模块 | 覆盖的 L 档 |
|
|
|---|---|---|
|
|
| `00_quickstart.py` | 全流程 | L0 |
|
|
| `01_clean_and_describe.py` | `data` + `stats` | L0 |
|
|
| `02_regression_compare.py` | `models` | L1 |
|
|
| `03_monte_carlo.py` | `solve/simulate` | L0 |
|
|
| `04_decision_topsis.py` | `decision` | L1 |
|
|
| `05_sensitivity.py` | `solve/sensitivity` | L1 |
|
|
|
|
跑法:
|
|
|
|
```powershell
|
|
.\.venv\Scripts\python.exe examples\03_monte_carlo.py
|
|
```
|