伐谋 - 数据分析工具

数据分析技能,用于理解数据、分析数据、制作数据处理流程、汇总数据分析结果。当用户提到"分析数据"、"数据处理"、"数据探索"、"统计分析"、"数据清洗"、"数据汇总"、"制作数据报告"、"理解这份数据"、"看一下这个CSV/Excel/数据集"时,必须使用此技能。即使用户只说"帮我看看这个数据"、"分析一下",只...

MIT-0 · Free to use, modify, and redistribute. No attribution required.
0 · 81 · 0 current installs · 0 all-time installs
byFaMou@zhaoM0
MIT-0
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Benign
high confidence
Purpose & Capability
Name/description (数据分析) matches the instructions: guidance on understanding, cleaning, transforming, and reporting on datasets. No unrelated credentials, binaries, or installs are requested.
Instruction Scope
Instructions stay within data-analysis tasks (quality checks, cleaning rules, reporting format). It explicitly references local upload/output paths (/mnt/user-data/uploads/ and /mnt/user-data/outputs/) and runtime settings (encoding, matplotlib fonts), which is reasonable for a data skill but worth noting because the skill assumes access to those filesystem locations and will be triggered whenever the user mentions data analysis.
Install Mechanism
No install spec and no code files — instruction-only skill. This minimizes on-disk footprint and external downloads.
Credentials
Requires no environment variables, credentials, or config paths. The only environment assumptions are file locations and common encoding/font settings needed for data processing and visualization.
Persistence & Privilege
always is false and the skill does not request persistent system modifications or elevated privileges. Autonomous invocation is allowed by platform default but not combined with other high-risk factors.
Assessment
This skill is coherent for dataset analysis: it doesn't ask for credentials or install code. Before enabling, confirm that your agent environment uses the referenced paths (/mnt/user-data/uploads/ and /mnt/user-data/outputs/) and that you are comfortable the agent can read uploaded files placed there. Also note the skill declares it should be invoked whenever a user mentions data-analysis terms — consider whether you want it auto-triggered in all those cases. Finally, as with any data-processing tool, avoid uploading sensitive data unless you trust the agent/environment's storage and retention policies.

Like a lobster shell, security has layers — review code before you run it.

Current versionv1.0.0
Download zip
latestvk978hz9v6549s3shc3cpn2f9p982vg8e

License

MIT-0
Free to use, modify, and redistribute. No attribution required.

SKILL.md

数据分析技能

分析目标

数据分析任务的核心目标是:

  1. 理解数据:搞清楚数据是什么、从哪来、代表什么业务含义,而不仅仅是读取文件
  2. 评估数据质量:识别缺失、重复、异常、格式不一致等问题,判断数据可信度
  3. 发现规律与洞察:通过统计和探索,找出数据中有意义的模式、趋势、异常和关联
  4. 制定处理流程:根据实际数据问题,设计可复现、有依据的清洗和转换方案
  5. 汇总结果:用清晰、有业务价值的语言输出结论,不是堆砌统计数字

处理约束

在分析过程中,始终遵守以下约束:

  • 不擅自修改原始数据:任何清洗或转换操作都要先告知用户,说明原因,再执行
  • 不过度假设数据含义:列名不清晰时,应向用户确认,而不是自行猜测
  • 不忽略数据质量问题:发现异常、缺失、不一致时必须明确标注,不能绕过
  • 不强行套用固定流程:数据格式千差万别,应根据实际情况灵活判断分析路径
  • 不脱离用户目标做分析:始终围绕"用户想解决什么问题"来决定分析深度和方向

最佳实践

先理解,再动手

拿到数据后,优先弄清楚背景:数据的业务场景是什么?用户的分析目的是什么?这决定了哪些列重要、什么算"异常"、如何处理缺失值。

用业务语言解释结果

不要只输出统计数字,要解释它们的含义。"均值是 3200"不如"平均订单金额约 3200 元,但中位数仅 1800 元,说明存在少量高额订单拉高了均值"。

数据质量问题要分级处理

  • 阻断性问题(如关键列全为空、主键大量重复):先停下来告知用户,确认后再继续
  • 需要决策的问题(如缺失率高、含义不明的异常值):列出处理方案的利弊,让用户选择
  • 轻微问题(如少量格式不一致、空白字符):可直接处理,但要在报告中记录

处理流程要可解释

每一步操作都要能回答"为什么这样做",例如:

  • "用中位数填充,因为该列分布右偏,均值受极值影响大"
  • "删除该列,因为缺失率达 78%,无法有效利用"

结论要有数据支撑

每个洞察后面都应该跟上具体数字作为依据,避免主观判断。

环境与工具

  • 文件路径:上传的文件在 /mnt/user-data/uploads/,输出文件保存到 /mnt/user-data/outputs/
  • 中文数据常见编码问题:优先尝试 utf-8,失败则尝试 gbk / gb18030
  • 图表中文显示:设置 matplotlib.rcParams['font.sans-serif'] = ['SimHei', 'DejaVu Sans']
  • 输出 CSV 供 Excel 打开时,用 encoding='utf-8-sig' 防止乱码

分析结果汇总格式

无论分析路径如何,最终汇总报告应包含:

## 数据分析报告

### 数据概况
(数据规模、来源、时间范围、核心字段说明)

### 数据质量
(发现的问题、严重程度、已做处理或待确认事项)

### 核心发现
(3-5 条最重要的洞察,每条附数据支撑)

### 处理流程说明
(对数据做了哪些变换,为什么这样做)

### 后续建议
(数据改进建议、可深入分析的方向)

示例

以下示例展示了面对不同类型数据时,如何应用上述目标和约束进行分析。

示例 A:电商订单数据分析

场景:用户上传一份订单 CSV,列包括订单 ID、下单时间、商品类别、金额、用户城市、支付状态,想了解"销售整体情况"。

分析思路

  • 先确认时间范围,这是销售分析的基本背景
  • 金额列检查是否有负值(退款?录入错误?)、零值(需要业务解释)
  • 支付状态的分布决定"有效订单"的口径
  • 按时间聚合看趋势,按类别和城市看构成

质量问题处理示例

发现"金额"列有 12 行为负值。在销售数据中,负值通常代表退款记录。建议:若分析销售额,过滤掉负值;若分析净收入,需要保留。请确认分析目标后再处理。

核心发现示例

  • 3 月销售额环比增长 34%,主要由"家电"品类驱动(贡献增量的 61%)
  • 北京和上海合计占全部订单量的 47%,但客单价低于二线城市均值 15%
  • 支付失败率为 8.3%,高于行业参考值(通常 2-5%),建议排查支付链路

示例 B:结构混乱的调查问卷数据

场景:用户上传一份 Excel,多个 Sheet,列名不统一(有的叫"Q1",有的叫"第一题"),部分单元格合并,有空行空列。

首要步骤:不急于分析,先向用户说明数据结构问题:

这份文件包含 3 个 Sheet,结构存在以下问题需要先确认:

  1. Sheet1 和 Sheet2 的列名不一致,是同一份问卷的不同批次,还是不同问卷?
  2. 第 5-8 行为空行,是否可以删除?
  3. "Q3_其他"列 92% 为空,是开放题填写率低,还是导出时出了问题?

确认后我来制定清洗方案。

体现约束:这里不假设列名含义,不擅自合并 Sheet,先暴露问题等用户确认。


示例 C:用户要求"清洗数据并输出处理后的文件"

处理流程文档示例(随输出文件一起提供):

数据处理流程记录
原始文件:sales_2024.csv(8,412 行 × 15 列)
处理后文件:sales_2024_cleaned.csv(8,203 行 × 13 列)

变更说明:
1. 删除重复行:移除 89 行完全重复记录
2. 删除"备注2"列:缺失率 96%,无有效信息
3. 删除"内部编码"列:用户确认该列不参与分析
4. 金额列格式统一:将"¥1,200.00"格式转为数值 1200.0(共 203 行受影响)
5. 日期列标准化:统一转为 YYYY-MM-DD 格式(原始混有 MM/DD/YYYY 和中文日期两种格式)
6. 缺失值处理:
   - "城市"列 34 行缺失 → 填入"未知"(用户确认)
   - "金额"列 86 行缺失 → 保留为空(用户确认这批订单为异常记录,不填充)

Files

1 total
Select a file
Select a file to preview.

Comments

Loading comments…