mcpField
C
csv-analyzer

csv-analyzer

github.com/casper-studios数据与数据库15331 次安装8 周前更新
代码仓库

关于 csv-analyzer

面向 Claude 的技能及 Python 脚本,用于分析 CSV 文件并生成统计结果、质量检查和可视化。适合分析人员和开发者探索数据集、解读发现,并按问题选择图表或报告。

主要功能

  1. 01概览列信息与数据质量
  2. 02检查缺失值和重复行
  3. 03分析相关性、分布和异常值
  4. 04生成图表与仪表板
  5. 05导出 Markdown 或 JSON 报告

适用场景

  1. 01检查 CSV 中的数据质量问题
  2. 02探索数据集的变量关系与分布
  3. 03为数据审查制作图表仪表板

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/casper-studios/casper-marketplace --skill csv-analyzer

安装后在 Claude Code 中输入/csv-analyzer确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
analysis-guide.md
visualization-guide.md
scripts/
analyze_csv.py

详细介绍

CSV 分析器

概述

全面的 CSV 数据分析与可视化引擎。运行脚本后,使用本指南解读结果并向用户提供见解。

快速入门

cd ~/.claude/skills/csv-analyzer/scripts
export $(grep -v '^#' /path/to/project/.env | xargs 2>/dev/null)
python3 analyze_csv.py /path/to/data.csv

图表选择决策树

重要:根据用户需要了解的内容选择图表:

What is the user trying to understand?
│
├── "What does my data look like?" (Overview)
│   └── Run with defaults → overview_dashboard.png
│
├── "Is my data clean?" (Quality)
│   └── Check: quality_score, missing_values, duplicates
│   └── Show: missing_values.png if problems exist
│
├── "What's the distribution?" (Single Variable)
│   ├── Numeric → numeric_distributions.png (histogram + KDE)
│   ├── Categorical → categorical_distributions.png (bar chart)
│   └── Time-based → time_series.png
│
├── "Are there outliers?" (Anomalies)
│   └── box_plots.png → points beyond whiskers are outliers
│
├── "How are variables related?" (Relationships)
│   ├── 2 numeric vars → correlation_heatmap.png
│   ├── 2-6 numeric vars → pairplot.png (scatter matrix)
│   ├── Numeric vs Categorical → violin_plot.png
│   └── All numeric → correlation_heatmap.png
│
└── "Can I predict X from Y?" (Predictive)
    └── correlation_heatmap.png → |r| > 0.5 suggests predictive power

如何解读结果(供 Claude 使用)

质量评分解读
评分等级告知用户的内容
90-100A“您的数据质量极佳,可直接用于分析”
80-89B“数据质量良好,但有一些值得注意的小问题”
70-79C“数据质量一般——在进行关键分析前,请先处理缺失值”
60-69D“数据质量问题较多——建议先清理数据”
<60F“存在严重问题——数据需要大量清理”
相关性解读
|r| 值强度建议说法
0.9 - 1.0非常强“X 和 Y 的关系非常强——几乎是确定性的”
0.7 - 0.9强“X 和 Y 的关系很强——X 可能有助于预测 Y”
0.5 - 0.7中等“X 和 Y 呈中等相关——具有一定的预测价值”
0.3 - 0.5弱“X 和 Y 的关系较弱——预测能力有限”
0.0 - 0.3可忽略“X 和 Y 似乎没有关联”

符号很重要:

  • 正值:“随着 X 增加,Y 通常也会增加”
  • 负值:“随着 X 增加,Y 通常会减少”
偏度解读
偏度分布形状建议
< -1左侧长尾“大多数值较高,但有一些极低的离群值”
-1 到 -0.5轻微左偏“低值离群点略多于高值离群点”
-0.5 到 0.5对称“分布均衡,适用于大多数分析”
0.5 到 1轻微右偏“高值离群点略多于低值离群点”
> 1右侧长尾“大多数值较低,但有一些极高的离群值。建模时可考虑进行对数变换。”
离群值评估

报告离群值时:

  • 少量离群值(<1%):“有少数极端值,可能值得调查”
  • 中等数量的离群值(1-5%):“存在值得注意的离群值——请检查它们是错误数据还是合理的极端值”
  • 大量离群值(>5%):“离群值比例较高,可能表明存在数据问题或数据分布并非正态分布”

生成见解的框架

分析完成后,按以下顺序提供见解:

1. 数据概览(始终提供)
"Your dataset has [rows] records and [cols] columns:
- [n] numeric columns: [list top 3]
- [n] categorical columns: [list top 3]
- Data quality score: [score]/100 ([grade])"
2. 主要发现(选择最相关的内容)

如果存在质量问题:

"I noticed some data quality concerns:
- [X]% missing values in [column] - [recommend: drop/impute/investigate]
- [N] duplicate rows detected - [recommend: keep first/remove all/investigate]"

如果发现强相关性:

"Interesting relationships I found:
- [col1] and [col2] are strongly correlated (r=[value]) - [interpretation]
- This suggests [actionable insight]"

如果检测到离群值:

"I detected outliers in [columns]:
- [column]: [n] values beyond normal range ([min outlier] to [max outlier])
- These could be [data errors / genuine extremes / worth investigating]"

如果分布存在偏度:

"[Column] has a [right/left]-skewed distribution:
- Most values cluster around [median]
- But there are extreme values up to [max]
- For modeling, consider [log transform / robust methods]"
3. 建议(根据发现提出)
发现建议
某列缺失值 >20%“考虑删除该列,或调查缺失原因”
缺失值 <5%,且零散分布“可安全地使用中位数(数值型)或众数(类别型)填补”
相关性较高(>0.9)“这些列可能存在冗余——考虑只保留其中一列”
离群值较多“使用稳健统计量(用中位数代替均值),或调查数据收集过程”
偏度很高“线性建模前应用对数变换”
质量评分较低“分析前优先清理数据”

多图表仪表盘请求

当用户要求“仪表盘”或“全面视图”时:

# Generate all visualizations
python3 analyze_csv.py data.csv --format html --max-charts 10

然后按以下顺序展示图表:

  1. overview_dashboard.png - “以下是您的数据概览”
  2. correlation_heatmap.png - “变量之间的主要关系”
  3. numeric_distributions.png - “数值型数据的分布情况”
  4. box_plots.png - “离群值分析”
  5. categorical_distributions.png - “类别分布”(如适用)

命令参考

基本分析
python3 analyze_csv.py data.csv
包含所有图表的完整报告
python3 analyze_csv.py data.csv --format markdown --max-charts 10
快速分析(不生成图表)
python3 analyze_csv.py data.csv --no-charts
大文件(>100MB)
python3 analyze_csv.py huge.csv --sample 50000
指定日期列
python3 analyze_csv.py data.csv --date-columns created_at updated_at
用于程序化使用的 JSON
python3 analyze_csv.py data.csv --format json --no-charts
自定义输出位置
python3 analyze_csv.py data.csv --output-dir /path/to/project/.tmp/analysis

图表说明(向用户解释时使用)

图表何时显示如何描述
overview_dashboard.png初次查看时始终显示“这是数据的整体概览”
missing_values.png存在缺失数据时“这里展示了数据缺失的位置”
numeric_distributions.png探索分布时“这里展示了数值的分布情况”
box_plots.png检查异常值时“箱线图外的点可能是异常值”
correlation_heatmap.png探索关系时“颜色越深,关系越强”
categorical_distributions.png分析类别时“这里展示了各类别的分布情况”
time_series.png存在时间数据时“这里展示了数据随时间的变化”
pairplot.png探索多变量关系时“每个单元格都展示了两个变量之间的关系”
violin_plot.png比较组别时“这里展示了各组的分布差异”

常见用户问题 → 操作

用户说操作
“分析这个 CSV”运行完整分析,展示概览和关键洞见
“我的数据干净吗?”重点查看 quality_score、缺失值和重复项
“寻找规律”展示 correlation_heatmap,并突出显示强相关性
“有异常值吗?”展示 box_plots,并列出每列的异常值数量
“比较 Y 中的 X”为数值型 X 与类别型 Y 生成 violin_plot
“展示趋势”如果存在日期时间列,则生成 time_series
“创建仪表板”生成所有图表,并以条理清晰的摘要呈现
“我应该清理哪些内容?”列出缺失值超过 5%、存在重复项或异常值的列

输出位置

图表保存至:

  • 默认:~/.claude/skills/csv-analyzer/scripts/.tmp/csv_analysis/
  • 自定义:使用 --output-dir /path/to/project/.tmp/analysis

始终将图表复制到用户项目的 .tmp 目录,以便查看:

cp ~/.claude/skills/csv-analyzer/scripts/.tmp/csv_analysis/*.png /path/to/project/.tmp/csv_analysis/

费用

免费——完全在本地使用 pandas、matplotlib、seaborn、scipy 运行。

依赖项

pip install pandas matplotlib seaborn scipy numpy

评论

支持 Markdown