dummy-dataset
phuryn/pm-skills
生成用于测试的逼真模拟数据集,支持自定义列、约束条件和输出格式(CSV、JSON、SQL、Python 脚本)。
...展开全部模拟数据集生成
生成逼真的模拟数据集用于测试,支持自定义列、约束条件和输出格式(CSV、JSON、SQL、Python脚本)。可生成可执行脚本或直接数据文件,供立即使用。
适用场景:创建测试数据、生成样本数据集、为开发构建逼真的模拟数据,或填充测试环境。
参数:
$PRODUCT: 产品或系统名称$DATASET_TYPE: 数据类型(例如:客户反馈、交易记录、用户档案)$ROWS: 要生成的行数(默认:100)$COLUMNS: 需要包含的特定列或字段$FORMAT: 输出格式(CSV、JSON、SQL、Python脚本)$CONSTRAINTS: 其他约束条件或业务规则
分步流程
- 确定数据集类型——了解数据领域
- 定义列规范——名称、数据类型和值范围
- 确定行数——需要多少条样本记录
- 选择输出格式——CSV、JSON、SQL INSERT 或 Python 脚本
- 应用符合实际情况的模式——确保数据看起来真实且有效
- 添加业务约束 - 遵循业务逻辑和关联关系
- 生成或编写数据脚本——创建可执行的输出
- 验证输出——确保数据质量和完整性
模板:Python 脚本输出
import csv
import json
from datetime import datetime, timedelta
import random
# Configuration
ROWS = $ROWS
FILENAME = "$DATASET_TYPE.csv"
# Column definitions with realistic value generators
columns = {
"id": "auto-increment",
"name": "first_last_name",
"email": "email",
"created_at": "timestamp",
# Add more columns...
}
def generate_dataset():
"""Generate realistic dummy dataset"""
data = []
for i in range(1, ROWS + 1):
record = {
"id": f"U{i:06d}",
# Generate values based on column definitions
}
data.append(record)
return data
def save_as_csv(data, filename):
"""Save dataset as CSV"""
with open(filename, 'w', newline='') as f:
writer = csv.DictWriter(f, fieldnames=data[0].keys())
writer.writeheader()
writer.writerows(data)
if __name__ == "__main__":
dataset = generate_dataset()
save_as_csv(dataset, FILENAME)
print(f"Generated {len(dataset)} records in {FILENAME}")
示例数据集规范
数据集类型:客户反馈
列:
- feedback_id(自增,U001、U002...)
- customer_name(真实姓名)
- email(有效邮箱格式)
- feedback_date(过去90天内的日期)
- rating(1-5 星)
- category(Bug、功能请求、投诉、表扬)
- text(真实的反馈内容)
- 产品(电子产品、服装、家居)
约束条件:
- 评分分布不均衡:40%为5星,30%为4星,20%为3星,10%为1-2星
- 仅“Bug”类别包含1-3星评分
- 功能请求仅限评分3-5星的评论
- 邮箱域名需真实可信(如 gmail、yahoo、company.com)
交付成果
- 可直接运行的 Python 脚本 或 直接数据文件
- 带有正确标题和格式的 CSV 文件
- 结构和类型有效的 JSON 文件
- 用于数据库填充的 SQL INSERT 语句
- 数据验证及约束符合性
- 符合实际且符合业务需求的数值
- 数据生成逻辑的文档
- 数据集使用快速入门指南
输出格式
CSV:扁平表格格式,便于导入电子表格和数据库
JSON:嵌套结构,非常适合 API 和 NoSQL 数据库
SQL:INSERT 语句,可直接在关系型数据库中执行
Python 脚本:可执行的生成器,适用于自定义或大型数据集
---
name: dummy-dataset
description: Generate realistic dummy datasets for testing with customizable columns, constraints, and output formats (CSV, JSON, SQL, Python script).
---
# Dummy Dataset Generation
Generate realistic dummy datasets for testing with customizable columns, constraints, and output formats (CSV, JSON, SQL, Python script). Creates executable scripts or direct data files for immediate use.
**Use when:** Creating test data, generating sample datasets, building realistic mock data for development, or populating test environments.
**Arguments:**
- `$PRODUCT`: The product or system name
- `$DATASET_TYPE`: Type of data (e.g., customer feedback, transactions, user profiles)
- `$ROWS`: Number of rows to generate (default: 100)
- `$COLUMNS`: Specific columns or fields to include
- `$FORMAT`: Output format (CSV, JSON, SQL, Python script)
- `$CONSTRAINTS`: Additional constraints or business rules
## Step-by-Step Process
1. **Identify dataset type** - Understand the data domain
2. **Define column specifications** - Names, data types, and value ranges
3. **Determine row count** - How many sample records needed
4. **Select output format** - CSV, JSON, SQL INSERT, or Python script
5. **Apply realistic patterns** - Ensure data looks authentic and valid
6. **Add business constraints** - Respect business logic and relationships
7. **Generate or script data** - Create executable output
8. **Validate output** - Ensure data quality and completeness
## Template: Python Script Output
```python
import csv
import json
from datetime import datetime, timedelta
import random
# Configuration
ROWS = $ROWS
FILENAME = "$DATASET_TYPE.csv"
# Column definitions with realistic value generators
columns = {
"id": "auto-increment",
"name": "first_last_name",
"email": "email",
"created_at": "timestamp",
# Add more columns...
}
def generate_dataset():
"""Generate realistic dummy dataset"""
data = []
for i in range(1, ROWS + 1):
record = {
"id": f"U{i:06d}",
# Generate values based on column definitions
}
data.append(record)
return data
def save_as_csv(data, filename):
"""Save dataset as CSV"""
with open(filename, 'w', newline='') as f:
writer = csv.DictWriter(f, fieldnames=data[0].keys())
writer.writeheader()
writer.writerows(data)
if __name__ == "__main__":
dataset = generate_dataset()
save_as_csv(dataset, FILENAME)
print(f"Generated {len(dataset)} records in {FILENAME}")
```
## Example Dataset Specification
**Dataset Type:** Customer Feedback
**Columns:**
- feedback_id (auto-increment, U001, U002...)
- customer_name (realistic names)
- email (valid email format)
- feedback_date (dates last 90 days)
- rating (1-5 stars)
- category (Bug, Feature Request, Complaint, Praise)
- text (realistic feedback)
- product (electronics, clothing, home)
**Constraints:**
- Ratings skewed: 40% 5-star, 30% 4-star, 20% 3-star, 10% 1-2 star
- Bug category only with ratings 1-3
- Feature requests only with ratings 3-5
- Email domains realistic (gmail, yahoo, company.com)
## Output Deliverables
- Ready-to-execute Python script OR direct data file
- CSV file with proper headers and formatting
- JSON file with valid structure and types
- SQL INSERT statements for database population
- Data validation and constraint compliance
- Realistic, business-appropriate values
- Documentation of data generation logic
- Quick-start instructions for using the dataset
## Output Formats
**CSV:** Flat tabular format, easy to import into spreadsheets and databases
**JSON:** Nested structure, ideal for APIs and NoSQL databases
**SQL:** INSERT statements, directly executable on relational databases
**Python Script:** Executable generator for custom or large datasets





首页
