分析技能
灵活的数据科学分析,适用于任何数据集。自动发现数据模式,推荐可视化方案,并导出为 create-figure 格式。
快速开始(任意数据集)
cd .pi/skills/analytics
./run.sh describe data.jsonl
./run.sh chart data.jsonl --name distribution_channel -o chart.json
cd .agent/skills/create-figure
./run.sh metrics -i /path/to/chart.json --type bar -o chart.pdf
无缝流水线
任意数据(JSONL/JSON/CSV)
│
▼
┌─────────────────────────────────┐
│ analytics describe │ ← 发现数据模式,推荐图表
│ "检测到 5 个分类列、2 个数值列、│
│ 1 个时间列" │
│ 推荐方案: │
│ - distribution_channel(柱状图)│
│ - trend_by_date(折线图) │
│ - heatmap_hour_x_day(热力图) │
└─────────────────────────────────┘
│
▼
┌─────────────────────────────────┐
│ analytics chart/group-by │ ← 以 create-figure 格式生成图表数据
│ --name distribution_channel │
│ -o chart.json │
└─────────────────────────────────┘
│
▼
┌─────────────────────────────────┐
│ create-figure metrics │ ← 渲染出版质量的 PDF/PNG
│ -i chart.json --type bar │
│ -o channel_distribution.pdf │
└─────────────────────────────────┘
命令
数据发现(从这里开始)
| 命令 | 描述 |
|---|
describe <file> | 发现数据模式,检测列类型,推荐图表 |
./run.sh describe sales.jsonl
灵活分析
| 命令 | 描述 |
|---|
group-by <file> | 按任意列分组并进行聚合 |
stats <file> | 数值统计与相关性分析 |
chart <file> | 生成 create-figure 的图表规格 |
./run.sh group-by data.jsonl --by channel --for-figure -o by_channel.json
./run.sh group-by data.jsonl --by category --agg price --func sum
./run.sh stats data.jsonl --columns revenue,cost,profit
./run.sh chart data.jsonl --name distribution_channel -o chart.json
时间戳数据(ingest-* 输出)
| 命令 | 描述 |
|---|
insights <file> | 完整分析摘要(趋势、会话、模式) |
trends <file> | 使用滚动平均分析观看趋势 |
sessions <file> | 会话检测与狂欢分析 |
time-patterns <file> | 小时/天分布 |
evolution <file> | 偏好随时间的变化 |
输出
| 命令 | 描述 |
|---|
export <file> | 批量导出所有标准图表 |
report <file> | 生成 Horus 风格的叙述性报告 |
支持的格式
| 格式 | 扩展名 | 自动检测 |
|---|
| JSONL | .jsonl | 行分隔的 JSON |
| JSON | .json | 数组或 {data: [...]} |
| CSV | .csv | 逗号分隔 |
列类型检测
describe 命令自动检测:
| 类型 | 检测逻辑 | 推荐图表 |
|---|
| 时间型 | datetime64、类似日期的字符串 | 折线图、面积图、热力图(时间轴) |
| 数值型 | int64、float64 | 直方图、散点图、统计 |
| 分类型 | 低基数(≤20 个唯一值) | 柱状图、饼图、热力图 |
| 布尔型 | bool 类型 | 饼图(真/假) |
| 文本型 | 高基数字符串 | 词云、Top-N 分析 |
图表推荐
根据列类型,analytics 推荐:
| 数据模式 | 图表类型 | create-figure 命令 |
|---|
| 1 个分类列 | 柱状图、饼图 | metrics --type bar |
| 1 个时间列 | 折线图 | training-curves |
| 2 个分类列 | 热力图 | heatmap |
| 时间列 + 分类列 | 热力图 | heatmap |
| 2+ 个数值列 | 相关矩阵 | heatmap |
| 1 个数值列 | 直方图 | metrics --type bar |
智能体工作流
项目智能体分析任意数据集并进行可视化的方式:
result = run("./run.sh describe data.jsonl --json")
recommendations = result["recommendations"]
chart_name = recommendations[0]["name"]
cmd = recommendations[0]["create_figure_cmd"]
run(f"./run.sh chart data.jsonl --name {chart_name} -o chart.json")
run(f"cd .agent/skills/create-figure && ./run.sh {cmd} -i chart.json -o chart.pdf")
示例
电商销售数据
./run.sh describe orders.jsonl
./run.sh group-by orders.jsonl --by category --agg amount --func sum --for-figure -o revenue_by_category.json
cd .agent/skills/create-figure
./run.sh metrics -i revenue_by_category.json --type bar -o revenue.pdf
YouTube 历史(ingest-yt-history)
./run.sh insights ~/.pi/ingest-yt-history/history.jsonl
./run.sh export ~/.pi/ingest-yt-history/history.jsonl -o ./charts --for-figure
cd .agent/skills/create-figure
./run.sh heatmap -i charts/heatmap.json -o viewing_heatmap.pdf
API 响应数据
./run.sh describe api_logs.json
./run.sh stats api_logs.json --columns response_time
./run.sh group-by api_logs.json --by endpoint --agg response_time --func mean --for-figure -o latency.json
依赖
dependencies = [
"pandas>=2.0.0",
"typer>=0.9.0",
"rich>=13.0.0",
]
与 Horus 集成
./run.sh insights ~/.pi/ingest-yt-history/history.jsonl --horus
常见错误
./run.sh stats data.jsonl --columns revenue,cost
./run.sh describe data.jsonl
./run.sh group-by data.jsonl --by date --agg views | ./run.sh metrics --type pie