Python数据分析

Other

拿到一堆数据不知道怎么分析?丢数据进来,自动生成Python分析代码并执行,输出可视化图表和结论。统计建模、时间序列、机器学习全覆盖。不用你会写代码,只要会提问就行。 触发词:数据分析、Python分析、统计分析、数据可视化、数据建模、回归分析、相关性分析、数据清洗、机器学习、聚类分析、预测分析、数据报告 排除:纯Python编程(无数据)、Excel操作(用excel_master)、数据库管理、网页爬虫

Install

openclaw skills install @qqyougitcom/mimo-python-data-analysis

Python数据分析 📊

触发条件

✅ 匹配关键词(满足任一即触发)

分析类型词

  • 描述统计、均值、方差、分布、频次、交叉表
  • 假设检验、t检验、卡方检验、ANOVA、p值、显著性
  • 回归分析、线性回归、逻辑回归、R²、预测
  • 聚类分析、K-Means、肘部法则、轮廓系数
  • 相关性分析、协方差、Pearson、Spearman
  • 时间序列、趋势、季节性、ARIMA、预测
  • 数据清洗、缺失值、异常值、去重、标准化

动作词

  • 分析、做个分析、分析一下、数据报告
  • 可视化、画图、制图、生成图表
  • 建模、训练模型、预测
  • 对比分析、差异分析、同比环比

场景词

  • CSV分析、Excel数据分析、JSON解析
  • 用户分析、销售分析、运营分析
  • A/B测试结果分析、问卷分析

❌ 排除关键词(明确不触发)

  • 纯Python编程(无数据分析)→ 拒绝
  • Excel操作、公式、VBA → 用 excel_master
  • 数据库SQL查询 → 拒绝
  • 网页爬虫、数据采集 → 拒绝
  • 深度学习、神经网络训练 → 拒绝
  • 大数据Spark/Hadoop处理 → 拒绝

🎯 上下文条件

  • 提供CSV/Excel文件 → 直接加载分析
  • 提供API/URL → 先获取数据再分析
  • 说"模拟数据"/"示例" → 生成模拟数据演示
  • 说"快速"/"简单" → 简化流程,只做核心分析
  • 说"详细"/"完整"/"专业" → 完整5步流程

核心流程(5 Steps)

Step 1: 需求理解 ✓ 校验点

输入:用户分析需求 处理

  1. 识别分析类型:描述统计/假设检验/回归/聚类/时间序列
  2. 确认数据来源:文件路径/URL/模拟数据
  3. 确认输出要求:图表数量/格式/报告深度 校验
  • 数据源是否存在且可读
  • 分析类型是否支持
  • 数据量是否合理(>10行) 输出:确认的分析计划

Step 2: 数据加载与探查 ✓ 校验点

处理

  1. 读取数据(自动识别格式:CSV/Excel/JSON/Clipboard)
  2. 输出数据概览:shape/dtypes/缺失值/基本统计
  3. 识别数据质量问题 校验
  • 文件编码(UTF-8/GBK/ISO)
  • 列名是否规范
  • 数据类型是否符合分析需求 异常处理
  • 编码错误:自动尝试UTF-8/GBK/Latin1
  • 缺失值:报告缺失率(<5%警告,>30%建议删除)
  • 离群值:使用IQR/Z-score检测 输出:数据质量报告

Step 3: 分析代码生成 ✓ 校验点

处理

  1. 根据分析类型生成Python代码
  2. 代码必须包含:import/数据加载/分析/可视化/保存
  3. 添加异常处理和日志输出 代码规范
- 依赖库:pandas/numpy/matplotlib/seaborn/scipy/sklearn/statsmodels
- 图表风格:seaborn白色主题,中文显示
- 图表DPI:150,保存为PNG
- 中文配置:plt.rcParams['font.sans-serif'] = ['SimHei']

校验

  • 代码语法正确
  • 依赖库完整
  • 可视化配置正确 输出:可执行Python代码

Step 4: 执行与迭代 ✓ 校验点

处理

  1. 执行代码,超时60秒
  2. 检查执行结果
  3. 如出错,自动修正重试(最多3次)
  4. 根据中间结果调整分析方向 分支处理
  • 执行成功 → 进入Step 5
  • 执行失败 → 输出错误信息,询问用户是否重试
  • 超时 → 分批处理或采样 输出:执行结果和图表

Step 5: 结论输出 ✓ 校验点

处理

  1. 生成可视化图表(保存PNG到output目录)
  2. 输出分析结论(自然语言总结)
  3. 提供数据驱动建议 质量检查
  • 图表是否清晰可读
  • 结论是否有数据支撑
  • 建议是否可执行 输出:完整分析报告

输出模板

模板A:简洁版(快速分析)

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📊 快速分析报告 | {分析目标}
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
## 数据概览
样本量:{N} | 特征数:{M}

## 核心发现
{发现1}({数据支撑})
{发现2}({数据支撑})

## 图表
{图表1} | {图表2}

## 结论
{一句话总结}
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

模板B:完整版(详细分析)

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📊 数据分析报告 | {分析目标}
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
## 数据概览
- 样本量:{N} | 特征数:{M}
- 缺失率:{X}%
- 数据类型分布:{分布}

## 质量检查
- ✅ 编码:UTF-8
- ✅ 缺失值:{处理方式}
- ⚠️ 离群值:{检测数量}个(已{处理方式})

## 核心发现
1. **{发现1标题}**
   - 数据:{具体数值}
   - 解读:{含义}
2. **{发现2标题}**
   - 数据:{具体数值}
   - 解读:{含义}
3. **{发现3标题}**
   - 数据:{具体数值}
   - 解读:{含义}

## 统计分析
| 指标 | 数值 | 显著性 |
|------|------|--------|
| {指标1} | {值} | {p值} |
| {指标2} | {值} | {p值} |

## 可视化图表
{图表列表(含文件路径)}

## 建议
1. **{建议1}**
   - 依据:{数据支撑}
   - 执行:{具体步骤}
2. **{建议2}**
   - 依据:{数据支撑}
   - 执行:{具体步骤}

## 技术附录
- 分析代码:`analysis_{timestamp}.py`
- 执行时间:{耗时}秒
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

边界约束

数据安全

  • ✅ 不上传数据到外部服务
  • ✅ 本地处理,文件不外传
  • ✅ 分析完成后清理临时数据

内存与性能

  • ✅ 单次分析数据量:≤100MB
  • ⚠️ 100MB-1GB:先采样再分析
  • ❌ >1GB:拒绝,建议分批处理
  • ✅ 单次执行超时:60秒
  • ⚠️ 超时:自动分批处理

输入校验

  • ❌ 空文件:拒绝
  • ❌ <10行数据:警告,结果可能不准确
  • ❌ 二进制文件:拒绝
  • ❌ 加密文件:拒绝

异常情况

异常处理方式
文件不存在提示检查路径
编码错误自动尝试多种编码
列名冲突自动重命名
数据类型错误尝试转换,失败则跳过
除零错误返回NaN并提示
图表生成失败输出纯文本表格替代

不支持场景

  • ❌ 实时流数据处理
  • ❌ 自然语言处理(NLP)
  • ❌ 图像/视频分析
  • ❌ 深度学习模型训练
  • ❌ 分布式计算(Spark/Hadoop)
  • ❌ 金融高频交易数据

示例

✅ 正向示例

输入:分析这份销售数据,找出影响业绩的关键因素 输出

  1. 加载数据,完成概览输出
  2. 相关性分析,生成热力图
  3. 回归分析,识别显著因素
  4. 输出完整报告

✅ 反向示例(用户意图模糊)

输入:分析一下 输出: 请提供更多信息:

  1. 数据来源?(文件路径/粘贴数据/模拟演示)
  2. 分析目标?(描述统计/找规律/预测/对比)
  3. 输出要求?(图表/报告/详细程度)

✅ 边界示例(数据质量差)

输入:分析这个CSV,但有30%的缺失值 输出: 数据质量警告:

  • 缺失率:30%(偏高) 建议:
  1. 删除缺失率>50%的列
  2. 对数值列用中位数填充
  3. 对分类列用众数填充 是否按建议处理?

✅ 边界示例(数据量小)

输入:只有5行数据,也要分析 输出: 数据量警告:样本量仅5条

  • 统计结论可能不显著
  • 建议增加样本量 是否继续分析?(结果仅供参考)

Output Language

中文输出

Anti-rationalization

借口正确做法
"数据量小,跳过数据质量检查直接分析"必须完成Step 2数据探查:输出shape/dtypes/缺失值/基本统计,即使数据量<100行也要执行
"缺失值直接dropna删掉就好"必须先报告缺失率,<5%可删除,5-30%需评估填充策略,>30%必须告知用户并建议处理方案
"图表用matplotlib默认样式就行"必须配置:seaborn白色主题、DPI=150、中文SimHei字体、合理的图表尺寸,禁止使用默认样式
"分析结论写'数据整体呈上升趋势'就行"每条结论必须有具体数据支撑(数值+百分比),禁止无数据引用的笼统描述
"代码报错了就告诉用户执行失败"执行失败必须自动修正重试(最多3次),常见错误(编码/类型转换/缺失值)应自动处理
"相关性分析看看热力图就够了"如用户要求深度分析,必须补充统计检验(p值)、回归分析(R²)、异常值检测(IQR/Z-score)
"数据量超过100MB,拒绝分析"100MB-1GB应自动采样分析并在报告中说明采样策略,只有>1GB才拒绝并建议分批方案