{"skill":{"slug":"famou-data-analysis","displayName":"伐谋 - 数据分析工具","summary":"数据分析技能，用于理解数据、分析数据、制作数据处理流程、汇总数据分析结果。当用户提到\"分析数据\"、\"数据处理\"、\"数据探索\"、\"统计分析\"、\"数据清洗\"、\"数据汇总\"、\"制作数据报告\"、\"理解这份数据\"、\"看一下这个CSV/Excel/数据集\"时，必须使用此技能。即使用户只说\"帮我看看这个数据\"、\"分析一下\"，只...","description":"---\nname: data-analysis\ndescription: 数据分析技能，用于理解数据、分析数据、制作数据处理流程、汇总数据分析结果。当用户提到\"分析数据\"、\"数据处理\"、\"数据探索\"、\"统计分析\"、\"数据清洗\"、\"数据汇总\"、\"制作数据报告\"、\"理解这份数据\"、\"看一下这个CSV/Excel/数据集\"时，必须使用此技能。即使用户只说\"帮我看看这个数据\"、\"分析一下\"，只要上下文涉及数据文件或数据集，也应立即触发此技能。如果在FaMou问题定义过程中涉及到数据分析，也需要调用此技能。\n---\n\n# 数据分析技能\n\n## 分析目标\n\n数据分析任务的核心目标是：\n\n1. **理解数据**：搞清楚数据是什么、从哪来、代表什么业务含义，而不仅仅是读取文件\n2. **评估数据质量**：识别缺失、重复、异常、格式不一致等问题，判断数据可信度\n3. **发现规律与洞察**：通过统计和探索，找出数据中有意义的模式、趋势、异常和关联\n4. **制定处理流程**：根据实际数据问题，设计可复现、有依据的清洗和转换方案\n5. **汇总结果**：用清晰、有业务价值的语言输出结论，不是堆砌统计数字\n\n---\n\n## 处理约束\n\n**在分析过程中，始终遵守以下约束：**\n\n- **不擅自修改原始数据**：任何清洗或转换操作都要先告知用户，说明原因，再执行\n- **不过度假设数据含义**：列名不清晰时，应向用户确认，而不是自行猜测\n- **不忽略数据质量问题**：发现异常、缺失、不一致时必须明确标注，不能绕过\n- **不强行套用固定流程**：数据格式千差万别，应根据实际情况灵活判断分析路径\n- **不脱离用户目标做分析**：始终围绕\"用户想解决什么问题\"来决定分析深度和方向\n\n---\n\n## 最佳实践\n\n### 先理解，再动手\n拿到数据后，优先弄清楚背景：数据的业务场景是什么？用户的分析目的是什么？这决定了哪些列重要、什么算\"异常\"、如何处理缺失值。\n\n### 用业务语言解释结果\n不要只输出统计数字，要解释它们的含义。\"均值是 3200\"不如\"平均订单金额约 3200 元，但中位数仅 1800 元，说明存在少量高额订单拉高了均值\"。\n\n### 数据质量问题要分级处理\n- **阻断性问题**（如关键列全为空、主键大量重复）：先停下来告知用户，确认后再继续\n- **需要决策的问题**（如缺失率高、含义不明的异常值）：列出处理方案的利弊，让用户选择\n- **轻微问题**（如少量格式不一致、空白字符）：可直接处理，但要在报告中记录\n\n### 处理流程要可解释\n每一步操作都要能回答\"为什么这样做\"，例如：\n- \"用中位数填充，因为该列分布右偏，均值受极值影响大\"\n- \"删除该列，因为缺失率达 78%，无法有效利用\"\n\n### 结论要有数据支撑\n每个洞察后面都应该跟上具体数字作为依据，避免主观判断。\n\n### 环境与工具\n- 文件路径：上传的文件在 `/mnt/user-data/uploads/`，输出文件保存到 `/mnt/user-data/outputs/`\n- 中文数据常见编码问题：优先尝试 `utf-8`，失败则尝试 `gbk` / `gb18030`\n- 图表中文显示：设置 `matplotlib.rcParams['font.sans-serif'] = ['SimHei', 'DejaVu Sans']`\n- 输出 CSV 供 Excel 打开时，用 `encoding='utf-8-sig'` 防止乱码\n\n---\n\n## 分析结果汇总格式\n\n无论分析路径如何，最终汇总报告应包含：\n\n```\n## 数据分析报告\n\n### 数据概况\n（数据规模、来源、时间范围、核心字段说明）\n\n### 数据质量\n（发现的问题、严重程度、已做处理或待确认事项）\n\n### 核心发现\n（3-5 条最重要的洞察，每条附数据支撑）\n\n### 处理流程说明\n（对数据做了哪些变换，为什么这样做）\n\n### 后续建议\n（数据改进建议、可深入分析的方向）\n```\n\n---\n\n## 示例\n\n以下示例展示了面对不同类型数据时，如何应用上述目标和约束进行分析。\n\n### 示例 A：电商订单数据分析\n\n**场景**：用户上传一份订单 CSV，列包括订单 ID、下单时间、商品类别、金额、用户城市、支付状态，想了解\"销售整体情况\"。\n\n**分析思路**：\n- 先确认时间范围，这是销售分析的基本背景\n- 金额列检查是否有负值（退款？录入错误？）、零值（需要业务解释）\n- 支付状态的分布决定\"有效订单\"的口径\n- 按时间聚合看趋势，按类别和城市看构成\n\n**质量问题处理示例**：\n> 发现\"金额\"列有 12 行为负值。在销售数据中，负值通常代表退款记录。建议：若分析销售额，过滤掉负值；若分析净收入，需要保留。请确认分析目标后再处理。\n\n**核心发现示例**：\n> - 3 月销售额环比增长 34%，主要由\"家电\"品类驱动（贡献增量的 61%）\n> - 北京和上海合计占全部订单量的 47%，但客单价低于二线城市均值 15%\n> - 支付失败率为 8.3%，高于行业参考值（通常 2-5%），建议排查支付链路\n\n---\n\n### 示例 B：结构混乱的调查问卷数据\n\n**场景**：用户上传一份 Excel，多个 Sheet，列名不统一（有的叫\"Q1\"，有的叫\"第一题\"），部分单元格合并，有空行空列。\n\n**首要步骤**：不急于分析，先向用户说明数据结构问题：\n\n> 这份文件包含 3 个 Sheet，结构存在以下问题需要先确认：\n> 1. Sheet1 和 Sheet2 的列名不一致，是同一份问卷的不同批次，还是不同问卷？\n> 2. 第 5-8 行为空行，是否可以删除？\n> 3. \"Q3_其他\"列 92% 为空，是开放题填写率低，还是导出时出了问题？\n>\n> 确认后我来制定清洗方案。\n\n**体现约束**：这里不假设列名含义，不擅自合并 Sheet，先暴露问题等用户确认。\n\n---\n\n### 示例 C：用户要求\"清洗数据并输出处理后的文件\"\n\n**处理流程文档示例**（随输出文件一起提供）：\n\n```\n数据处理流程记录\n原始文件：sales_2024.csv（8,412 行 × 15 列）\n处理后文件：sales_2024_cleaned.csv（8,203 行 × 13 列）\n\n变更说明：\n1. 删除重复行：移除 89 行完全重复记录\n2. 删除\"备注2\"列：缺失率 96%，无有效信息\n3. 删除\"内部编码\"列：用户确认该列不参与分析\n4. 金额列格式统一：将\"¥1,200.00\"格式转为数值 1200.0（共 203 行受影响）\n5. 日期列标准化：统一转为 YYYY-MM-DD 格式（原始混有 MM/DD/YYYY 和中文日期两种格式）\n6. 缺失值处理：\n   - \"城市\"列 34 行缺失 → 填入\"未知\"（用户确认）\n   - \"金额\"列 86 行缺失 → 保留为空（用户确认这批订单为异常记录，不填充）\n```","topics":["Data Analysis","数据分析","数据处理","汇总"],"tags":{"latest":"1.0.0"},"stats":{"comments":0,"downloads":1837,"installsAllTime":70,"installsCurrent":8,"stars":1,"versions":1},"createdAt":1773382266344,"updatedAt":1778491876821},"latestVersion":{"version":"1.0.0","createdAt":1773382266344,"changelog":"- Initial release of the data-analysis skill.\n- Enables understanding, exploring, cleaning, and summarizing datasets with strict focus on data quality and user objectives.\n- Provides clear guidelines for data quality assessment, process documentation, and business-oriented result interpretation.\n- Includes best practices and constraints to ensure transparency, explainability, and user-driven analysis.\n- Offers template formats and real-world examples for analysis reports and processing records.","license":"MIT-0"},"metadata":null,"owner":{"handle":"zhaom0","userId":"s178kf3rgqktevfkvs9685an1986p2ax","displayName":"FaMou","image":"https://avatars.githubusercontent.com/u/21209028?v=4"},"moderation":null}