$npx -y skills add killvxk/pm-skills-zh --skill dummy-dataset生成用于测试的逼真虚拟数据集,支持自定义列、约束条件及输出格式(CSV、JSON、SQL、Python 脚本)。适用于创建测试数据、构建模拟数据集,或为开发和演示生成示例数据。
| 1 | # 虚拟数据集生成 |
| 2 | |
| 3 | 生成用于测试的逼真虚拟数据集,支持自定义列、约束条件及输出格式(CSV、JSON、SQL、Python 脚本)。生成可直接执行的脚本或数据文件,即开即用。 |
| 4 | |
| 5 | **适用场景:** 创建测试数据、生成示例数据集、为开发构建逼真的模拟数据,或填充测试环境。 |
| 6 | |
| 7 | **参数:** |
| 8 | - `$PRODUCT`:产品或系统名称 |
| 9 | - `$DATASET_TYPE`:数据类型(如客户反馈、交易记录、用户画像) |
| 10 | - `$ROWS`:生成的行数(默认:100) |
| 11 | - `$COLUMNS`:需要包含的具体列或字段 |
| 12 | - `$FORMAT`:输出格式(CSV、JSON、SQL、Python 脚本) |
| 13 | - `$CONSTRAINTS`:附加约束条件或业务规则 |
| 14 | |
| 15 | ## Step-by-Step Process(分步流程) |
| 16 | |
| 17 | 1. **确定数据集类型** - 理解数据领域 |
| 18 | 2. **定义列规格** - 名称、数据类型和取值范围 |
| 19 | 3. **确定行数** - 需要多少条样本记录 |
| 20 | 4. **选择输出格式** - CSV、JSON、SQL INSERT 或 Python 脚本 |
| 21 | 5. **应用真实规律** - 确保数据看起来真实有效 |
| 22 | 6. **添加业务约束** - 遵守业务逻辑和关联关系 |
| 23 | 7. **生成或脚本化数据** - 创建可执行的输出 |
| 24 | 8. **验证输出** - 确保数据质量和完整性 |
| 25 | |
| 26 | ## Template: Python Script Output(Python 脚本输出模板) |
| 27 | |
| 28 | ```python |
| 29 | import csv |
| 30 | import json |
| 31 | from datetime import datetime, timedelta |
| 32 | import random |
| 33 | |
| 34 | # 配置 |
| 35 | ROWS = $ROWS |
| 36 | FILENAME = "$DATASET_TYPE.csv" |
| 37 | |
| 38 | # 列定义及逼真值生成器 |
| 39 | columns = { |
| 40 | "id": "auto-increment", |
| 41 | "name": "first_last_name", |
| 42 | "email": "email", |
| 43 | "created_at": "timestamp", |
| 44 | # 添加更多列... |
| 45 | } |
| 46 | |
| 47 | def generate_dataset(): |
| 48 | """生成逼真的虚拟数据集""" |
| 49 | data = [] |
| 50 | for i in range(1, ROWS + 1): |
| 51 | record = { |
| 52 | "id": f"U{i:06d}", |
| 53 | # 根据列定义生成值 |
| 54 | } |
| 55 | data.append(record) |
| 56 | return data |
| 57 | |
| 58 | def save_as_csv(data, filename): |
| 59 | """将数据集保存为 CSV 格式""" |
| 60 | with open(filename, 'w', newline='') as f: |
| 61 | writer = csv.DictWriter(f, fieldnames=data[0].keys()) |
| 62 | writer.writeheader() |
| 63 | writer.writerows(data) |
| 64 | |
| 65 | if __name__ == "__main__": |
| 66 | dataset = generate_dataset() |
| 67 | save_as_csv(dataset, FILENAME) |
| 68 | print(f"已在 {FILENAME} 中生成 {len(dataset)} 条记录") |
| 69 | ``` |
| 70 | |
| 71 | ## Example Dataset Specification(数据集规格示例) |
| 72 | |
| 73 | **数据集类型:** 客户反馈 |
| 74 | |
| 75 | **列:** |
| 76 | - feedback_id(自增,U001、U002……) |
| 77 | - customer_name(真实姓名) |
| 78 | - email(有效邮箱格式) |
| 79 | - feedback_date(过去 90 天内的日期) |
| 80 | - rating(1-5 星) |
| 81 | - category(缺陷、功能请求、投诉、好评) |
| 82 | - text(真实的反馈内容) |
| 83 | - product(电子产品、服装、家居) |
| 84 | |
| 85 | **约束条件:** |
| 86 | - 评分分布偏斜:40% 五星,30% 四星,20% 三星,10% 一二星 |
| 87 | - 缺陷类别仅出现在 1-3 星评分中 |
| 88 | - 功能请求仅出现在 3-5 星评分中 |
| 89 | - 邮箱域名真实(gmail、yahoo、company.com) |
| 90 | |
| 91 | ## Output Deliverables(输出交付物) |
| 92 | |
| 93 | - 可直接执行的 Python 脚本,或直接的数据文件 |
| 94 | - 格式正确、带表头的 CSV 文件 |
| 95 | - 结构有效、类型正确的 JSON 文件 |
| 96 | - 可在数据库中直接执行的 SQL INSERT 语句 |
| 97 | - 数据验证和约束条件合规 |
| 98 | - 真实、符合业务实际的数据值 |
| 99 | - 数据生成逻辑说明文档 |
| 100 | - 快速上手使用指南 |
| 101 | |
| 102 | ## Output Formats(输出格式) |
| 103 | |
| 104 | **CSV:** 平面表格格式,易于导入电子表格和数据库 |
| 105 | |
| 106 | **JSON:** 嵌套结构,适用于 API 和 NoSQL 数据库 |
| 107 | |
| 108 | **SQL:** INSERT 语句,可直接在关系型数据库上执行 |
| 109 | |
| 110 | **Python 脚本:** 可执行的生成器,适用于自定义或大型数据集 |