light-data-engineering
Installation
SKILL.md
数据处理、质量分析与数据集构建
核心原则
数据先行:在 m03 提 idea 之前,先回答四问——数据是否足以支撑研究?质量是否可靠?规模是否足够?特征是否有挖掘价值?避免脱离数据基础的空想。
输入 / 触发
- 上游(idea 前,主线):用户原始数据 / 现成数据集 / 自建需求 → 出四问结论喂给 m03/m04。
- 回边(实验阶段,来自 m05):可接收 research-plan 实验矩阵「派生数据规格」区块的派生数据需求(基础数据集 + 变换类型 + 关键参数 + 划分策略),据此产出对应的加噪/缺失/跨域/扫参评测集与 dataset_card,回填 db04 供 ROB/GEN/SEN 实验使用。派生集构建沿用下文「处理流程」「划分」「自建数据集规划」的方法与防泄漏铁律。
数据体检(先做)
- 概览:行列、类型、内存、样例。
- 中小数据 pandas:读入即定
dtype/parse_dates,df.info(memory_usage='deep')看真实内存,df.isna().mean()一行得缺失率,df.describe(include='all')。object 列转category省内存。 - 大数据按场景选引擎:单机想要快+查询优化用 Polars 惰性管线
pl.scan_csv(...).filter(...).group_by(...).collect(),超大开collect(streaming=True);想用 SQL 直查 parquet/csv 且 out-of-core 用 DuckDB(duckdb.sql("SELECT ... FROM 'data/*.parquet'"),超内存自动 spill);想保持 pandas 写法又超内存用 Daskdd.read_csv("*.csv")...compute()。(引擎选型矩阵以 a09 tool-selectiondecision_matrix.md为单一口径;旧推荐的 Vaex 2023 后已停维护、勿新用。)
- 中小数据 pandas:读入即定
- 质量画像:按需各取所长,别只跑一个。
- ydata-profiling 出整体 EDA 报告:
ProfileReport(df, title=...).to_file("r.html");列多/行多务必minimal=True,时序tsmode=True;对比清洗前后/train-test 用r1.compare(r2)。看报告 Alerts(高相关、高基数、常量、缺失)。 - Deepchecks 跑结构化校验套件:
Dataset(df, label=, cat_features=[...])后data_integrity().run(ds)(重复/混合类型/特征-标签泄漏/异常值)、train_test_validation().run(train_ds, test_ds)(漂移/新类别/train-test 样本重叠泄漏)。 - Great Expectations 做可复现质量门禁:
gx.get_context()→ Data Source/Asset/Batch → Expectation Suite(ExpectColumnValuesToNotBeNull/ToBeBetween/ToBeInSet/ToBeUnique/ToMatchRegex)→ Validation Definition → Checkpoint,产出 Data Docs。注意 GX 1.x 与 0.x API 断层,认版本。 - 标准化交换/发布元数据用 Frictionless:
frictionless describe推断 Table Schema,frictionless validate datapackage.json出 cell/row 级错误报告。
- ydata-profiling 出整体 EDA 报告:
- 质量结论:给出“可直接用 / 需清洗 / 不足以支撑 / 需补采”的明确判断与理由。