全部技能 / 文档与知识 / csv-data-summarizer
文档与知识 · coffeefuelbump/csv-data-summarizer-claude-skill

csv-data-summarizer

Analyzes CSV files, generates summary stats, and plots quick visualizations using Python and pandas.

风险提醒:蓝色 · 知晓即可AI 侦查报告
作者 coffeefuelbumpGitHub coffeefuelbump/csv-data-summarizer-claude-skill ↗Stars 465许可 仓库内无 LICENSE 文件(git ls-tree 无 LICENSE);README 自述 'MIT License - feel free to use this skill for personal or commercial projects!',GitHub API license=nullcommit 9b3affd270
agent 宿主通常会约束 skill 执行权限;风险提醒为 AI 侦查观点,不构成质量或安全保证。第三方 skill 仅作拆解与展示,安装使用风险自负,版权归原作者。

1实现原理 · 为什么它能做到

全部能力就是一个 182 行的 pandas 函数 summarize_csv(file_path):读 CSV → 按列类型走固定分支 → 拼字符串报告,并在过程中把图直接用 plt.savefig 落到**当前工作目录**。

analyze.py
def summarize_csv(file_path): """ Comprehensively analyzes a CSV file and generates multiple visualizations. Args: file_path (str): Path to the CSV file Returns: str: Formatted comprehensive analysis of the dataset """ df = pd.read_csv(file_path)
注:报告是分段追加的字符串数组('summary.append(...)' 数十处),末尾 'return "\n".join(summary)';图表文件名与报告文本同为硬编码常量(correlation_heatmap.png / time_series_analysis.png / distributions.png / categorical_distributions.png)。

分支判据完全是列类型/列名子串,而非行业或数据语义:数值列统计+相关、object 列做取值频次、列名含 'date'/'time' 才做时间序列。

analyze.py
date_cols = [c for c in df.columns if 'date' in c.lower() or 'time' in c.lower()]
注:配套:'numeric_cols = df.select_dtypes(include='number').columns.tolist()'、'categorical_cols = df.select_dtypes(include=['object']).columns.tolist()' 且随后过滤掉名字含 'id' 的列('categorical_cols = [c for c in categorical_cols if 'id' not in c.lower()]')。

报告内容与顺序固定:数据总览(行列/列名)→ 每列 dtype → 缺失值统计 → 数值 describe → 相关系数矩阵 → 分类取值 Top10 → 时间序列区间 → 已生成图表清单。

analyze.py
summary.append("📊 DATA OVERVIEW")
注:缺失值部分会按列给出计数与百分比('Missing values: {missing:,} ({missing_pct:.2f}% of total data)'),无缺失时输出 '✓ No missing values - dataset is complete!'。

可视化是四类条件图:相关热力图(≥2 数值列)、时间序列折线(有日期列且有数值列,最多 3 条)、数值分布直方图(2x2,最多 4 列)、分类横向条形图(2x2,最多 4 列)。

analyze.py
plt.savefig('correlation_heatmap.png', dpi=150) plt.close() charts_created.append('correlation_heatmap.png')
注:一律 'plt.savefig(...)' 到相对路径 + 'plt.close()';数量上限写死在切片里(categorical_cols[:5] 文本、value_counts.head(10)、numeric_cols[:3]/[:4])。

『不要问用户』被写成最高优先级的硬性行为要求:SKILL.md 用全大写段落禁止一切提问与选项,要求立即跑完整分析并一次交付。

SKILL.md
**DO NOT ASK THE USER WHAT THEY WANT TO DO WITH THE DATA.** **DO NOT OFFER OPTIONS OR CHOICES.**
注:同一段还列出禁止语句('What would you like me to do with this data?'、'Here are some common options:' 等)与禁止行为(列选项、等用户指示、给部分分析)。这是本 skill 最鲜明的产品取向:以『零交互』对抗分析类助手常见的过度确认。

触发语境被明确列出(上传/引用 CSV、要求 summarize/analyze/visualize、想了解数据结构与质量),并规定缺失值、日期列等探测细节。

SKILL.md
Claude should use this Skill whenever the user: - Uploads or references a CSV file - Asks to summarize, analyze, or visualize tabular data
注:调用方式写的是『The Skill provides a Python function summarize_csv(file_path)』——即由宿主 Claude 写/跑代码调用该函数,而非脚本自带 CLI 子命令(analyze.py 只在 __main__ 里接受一个可选路径参数,默认 'resources/sample.csv')。

分发形式是给 Claude.ai Skills 上传的 zip 包,仓库同时保留同一份源码;zip 内文件与仓库工作区逐字节一致(已校验)。

README.md
2. Go to [Claude.ai](https://claude.ai) → Settings → Capabilities → Skills 3. Upload the zip file 4. Enable the skill
注:校验:zip 内 analyze.py / SKILL.md / requirements.txt 的 sha256 与仓库同名文件完全一致(见 verification.second_pass);zip 含 SKILL.md、analyze.py、requirements.txt、resources/{sample.csv,README.md},与工作区目录结构相同但少了 examples/。

2核心能力

01一次调用产出完整数据体检报告:行列规模、每列类型、缺失值分布、数值描述统计、相关系数矩阵
02自动条件化出图(相关热力图 / 时间序列折线 / 数值分布直方图 / 分类 Top-N 条形图)
03分类列频次剖析(前 5 个分类列、每列 Top 10 取值及占比)
04日期列自动识别与区间统计(实际判据是列名含 'date' 或 'time')
05缺失值定位到列(计数 + 百分比),作为数据质量结论的一部分
06可脱离宿主独立运行(analyze.py 自带 __main__,默认跑 resources/sample.csv)
07零交互执行纪律:禁止询问、禁止列选项、必须一次给全量结果

3外部依赖

类型依赖
packagepandas
packagematplotlib
packageseaborn
network无:脚本不发起任何网络请求(无 URL 取数、无遥测、无外部 API);仓库内 URL 仅出现在 README/resources 的徽章与社区链接中

4风险提醒 风险提醒:蓝色 · 知晓即可

风险提醒:蓝色 · 知晓即可
  • 演示与实际行为不符的日期列误判 — 列名含 'time' 即被当作日期列('customer_lifetime_value' 实测命中),会把数值列按纳秒解释成 1970 年并画出无意义时序图、输出 'Span: 0 days' 这类结论。用它的自动报告做判断时需人工核对『TIME SERIES ANALYSIS』一节是否真来自日期列。
  • 『智能识别数据类型』属宣传夸大 — 代码没有行业/语义分类,报告差异只来自 dtype 组合。若用户期待『它知道这是财务数据所以算毛利率』这类行业分析,会失望——这类结论需自己扩展 analyze.py。
  • 固定文件名写当前目录、可能静默覆盖 — 四张图以写死文件名保存在进程 CWD,既不询问也不检查同名文件;在已有同名图的目录(或重复运行)会直接覆盖。批量在项目根目录跑时建议先切到临时目录。
  • 无规模保护 — 一次性 pd.read_csv 载入全量数据并在内存中做 corr/groupby(含对日期列的全表 groupby),无行数/列数/文件体积上限或分块策略;超大 CSV 可能耗尽内存或长时间占满 CPU。
  • 统计结论不做校验与免责 — 相关系数、描述统计原样呈现,不检查样本量、不区分相关与因果、不提示异常值影响;报告以 '✓ COMPREHENSIVE ANALYSIS COMPLETE' 收尾,容易被当成结论级输出。
  • 元数据不一致(许可) — README 声明 MIT 但仓库无 LICENSE 文件、GitHub API 亦未识别许可。用于商业项目前的授权状态需自行确认(尤其分发的 zip 内也不含许可文本)。
风险提醒:蓝色,知晓即可。按统一分档:本 skill 属『仅本地工具/本地读写』——用 pandas/matplotlib/seaborn 在本地做统计与绘图,无网络外发、无凭证读取、无子进程、无任意代码执行面;依赖为 PyPI 官方包。之所以不是绿档:它确实执行 Python 脚本、会在工作目录写固定文件名图片(可能覆盖同名文件)、并需安装三项第三方库。外发面与凭证面为零,未触及黄/橙的触发条件。

5第二遍独立确认

  • [ok] 『无网络外发/无凭证读取』结论 — analyze.py imports 仅 pandas/matplotlib.pyplot/seaborn/pathlib;全仓(排除 .git)关键词扫描 requests|urllib|socket|http|subprocess|os.system|getenv|os.environ 零命中;URL 仅出现在 README/resources/README 的徽章与社区链接。
  • [discrepancy] 日期列判据与文档不符(实测) — SKILL.md Notes 写 'Automatically detects date columns (columns containing \'date\' in name)',实际代码是 "'date' in c.lower() or 'time' in c.lower()"。实测在仓库自带演示集上命中 **customer_lifetime_value**('life**time**' 含 'time'),随后 pd.to_datetime 把 2400 一类整数按纳秒解释成 1970 年,输出 'Date range: 1970-01-01 … to 1970-01-01 …'、'Span: 0 days',并据此画出无意义的时间序列图(实测 pandas 3.0.5;该行为与 pandas 2.x 一致:to_datetime(int) 亦按纳秒)。即 README 宣称该演示集『Perfect for showcasing time-series analysis』,实际触发的是误判列。
  • [discrepancy] 『自适应/智能识别行业数据类型』的能力声明 — SKILL.md 列出 Sales/E-commerce、Customer、Financial、Operational、Survey 五类数据的『相应分析』,README 写 'Automatically detects data type (sales, customer, financial, survey, etc.) and applies relevant analysis';但 analyze.py 没有任何行业或语义分类代码,全部行为由 dtype 与列名子串决定(number→describe/corr/hist,object→value_counts/barh,含 date|time→区间)。属**能力夸大**:它确实会因列构成不同而产出不同报告,但没有『识别数据类型』这一步。
  • [discrepancy] Notes『Generates visualizations only when date columns are present』 — 实际仅 time_series_analysis.png 需要日期列;distributions.png 只需数值列、categorical_distributions.png 只需分类列、correlation_heatmap.png 只需 ≥2 数值列。该句把条件说得比实现更严,属文档描述偏差(本身不影响使用)。
  • [discrepancy] SKILL.md『Files』清单与仓库实际文件 — SKILL.md 只列 analyze.py、requirements.txt、resources/sample.csv、resources/README.md;仓库另有 examples/showcase_financial_pl_data.csv(README 重点宣传的演示集)与 csv-data-summarizer.zip(分发包)。清单不完整。
  • [ok] 分发包与源码一致性 — zip 内 analyze.py(sha256 fa217db952541d59…)、SKILL.md(1599338ac2db52ba…)、requirements.txt(3787888dbf39eb94…)与工作区同名文件哈希完全相同;zip 结构为 SKILL.md/analyze.py/requirements.txt/resources/{sample.csv,README.md}。
  • [ok] 依赖声明三重一致 — SKILL.md frontmatter metadata(python>=3.8, pandas>=2.0.0, matplotlib>=3.7.0, seaborn>=0.12.0)与 requirements.txt 三行、README Technical Details 段逐项吻合;实际运行时三项库均被 import(seaborn 用于 heatmap,matplotlib 用于绘图)。
  • [ok] 写盘行为与覆盖风险 — 四处 plt.savefig 全部使用相对文件名(correlation_heatmap.png / time_series_analysis.png / distributions.png / categorical_distributions.png)+ dpi=150 + plt.close();不创建目录、不检查同名文件、不接受输出路径参数——已在 file_writes 与 risks 记入。

6结论

  • 零门槛:拖一个 CSV 进对话就得到完整报告与多张图,不需要回答任何问题——把『分析类助手最大的摩擦』直接删掉。
  • 实现极简可读可改:单文件 182 行、无抽象层,任何懂 pandas 的人几分钟就能加自己的领域计算或改图型(resources/README 也明确给出改法)。
  • 报告结构完整且稳定:规模/类型/缺失/描述统计/相关/分类频次/时间区间/图表清单八段固定顺序,便于人快速扫读或程序化截取。
  • 输出条件化做得克制:只在数据支持时才出对应图(无日期不出时序、无多数值列不出热力图),避免生成垃圾图表。
  • 完全本地执行,无任何外发与凭证:适合处理含客户/财务字段的敏感表格(数据不出本机)。
  • 适合:适合:快速摸底一份陌生 CSV(列名、类型、缺失、量级、初步相关与分布)的日常场景;非技术用户想『上传即得报告』;需要在本地处理敏感表格(客户/财务)而不愿外发数据的用户;以及想拿一个极简模板改造出自己领域分析脚本的开发者(单文件、易改)。
    不适合:不适合:期望按行业做专业分析的场景(无行业逻辑,需自行扩展);需要严谨统计/因果结论或异常值检验的场合(工具只做描述性统计,不做检验与免责);超大表或流式数据(全量载入内存,无分块);要求确定输出路径/不覆盖已有文件的流水线(文件名写死);以及需要跨语言字符集/多编码鲁棒性保障的场景(pd.read_csv 默认编码假设未处理)。
    安装 agent 直装可复制
    ① 本站镜像 更新 2026-09-15
    方式 A · 人下载镜像包下载 csv-data-summarizer.tar.gz
    sha256: 812ec659a4b533a8…
    方式 B · JSON 格式安装指南,复制给 agent
    安装指南
    agent 读 JSON 指南后会自动从本站下载安装,无需更多说明。
    ② 上游 GitHub · 原始来源
    能访问 GitHub?直接去上游安装(实时版,可能已更新)GitHub 原始 ↗
    本页镜像锁定 commit 9b3affd270;上游为实时仓库。
    来源信息 GitHub 原始
    作者 / 仓库coffeefuelbump / coffeefuelbump/csv-data-summarizer-claude-skill
    Stars465
    最近推送2025-10-16
    本 skill commit9b3affd270
    许可仓库内无 LICENSE 文件(git ls-tree 无 LICENSE);README 自述 'MIT License - feel free to use this skill for personal or commercial projects!',GitHub API license=null
    本站信息
    收录日期2026-09-06
    分类文档与知识
    侦查报告AI 侦查 · 2 遍 · 2026-09-06
    本站镜像与 GitHub 原始是不同来源:本站锁定 commit 快照经 /r2 分发;GitHub 为实时上游,内容可能已更新。
    同分类邻近