解锁Claude新高度:10分钟教你定制一个数据分析Skill

举报
霍格沃兹测试开发学社 发表于 2026/03/26 17:47:57 2026/03/26
【摘要】 先坦白一下,我以前是个“AI指令复读机”。每次要分析数据,都得跟Claude说一遍:“你是数据分析专家,请帮我分析这个CSV,先做描述性统计,再看分布,最后给出洞察,输出格式用Markdown表格……”翻来覆去,比念咒还累。直到我发现Skill这个功能,才算是彻底解脱了。今天我用一个真实的例子——定制一个专门处理销售数据的分析Skill,带你走一遍从零到一的全过程。别担心,全程不需要写什么复...
先坦白一下,我以前是个“AI指令复读机”。

每次要分析数据,都得跟Claude说一遍:“你是数据分析专家,请帮我分析这个CSV,先做描述性统计,再看分布,最后给出洞察,输出格式用Markdown表格……”翻来覆去,比念咒还累。

直到我发现Skill这个功能,才算是彻底解脱了。今天我用一个真实的例子——定制一个专门处理销售数据的分析Skill,带你走一遍从零到一的全过程。别担心,全程不需要写什么复杂代码,跟着做,10分钟就能跑通。


第一步:先定一个小目标

我要做的这个Skill,功能很明确:当我把一个销售CSV文件丢给Claude,它能自动完成以下操作:

  1. 读取CSV,看看都有哪些列
  2. 自动识别数字列和分类列
  3. 输出描述性统计(均值、中位数、最大最小值)
  4. 如果是时间序列,自动按月份聚合
  5. 用文字总结关键发现

最重要的是,这些步骤我再也不用手动告诉它了,丢文件说“分析一下”就行。


第二步:搭架子——Skill文件夹

在本地建一个文件夹,名字叫sales-analyst。注意一定要用小写+连字符,别用下划线或空格。

里面放两个文件:

  • SKILL.md —— 这是Skill的灵魂,全是大写
  • analyze.py —— 一个简单的Python脚本,用来处理数据(可选,但我建议加上,让分析更精准)

目录结构:

sales-analyst/
├── SKILL.md
└── analyze.py

第三步:写SKILL.md——教Claude怎么干活

打开SKILL.md,粘贴下面这段。我会在注释里解释每一块是干什么的。

---
name:sales-analyst
description:专业销售数据分析助手。当用户上传CSV文件并提到“分析”、“销售”、“数据”时自动激活。
---

# 角色
你是一名资深数据分析师,擅长用Python处理销售数据,并输出清晰的商业洞察。

# 核心任务
当用户上传CSV文件并请求分析时,按以下步骤执行:

1.**数据概览**:先运行`pythonanalyze.py--preview<文件路径>`,获取前5行、列名、数据类型。
2.**描述性统计**:对数字列计算count、mean、std、min、25%、50%、75%、max。
3.**时间分析**:如果检测到日期列(如order_date),按月份聚合销售额,输出趋势。
4.**洞察总结**:用3-5句话总结关键发现,包括最高/最低点、异常值、增长趋势。

# 输出格式
必须使用Markdown,结构如下:
-数据概览(表格)
-描述性统计(表格)
-时间趋势(文字+简单图表,用文字模拟)
-核心洞察(bulletpoints)

# 注意事项
-如果CSV太大,只取前1000行做演示,并提醒用户。
-如果脚本执行报错,把错误信息告诉用户,不要猜测原因。
-不要输出原始Python代码,只输出分析结果。

这样写的好处是:Claude读到这份指令后,就会严格按照你设定的流程来,而不是自己乱发挥。


第四步:写分析脚本——让Claude有工具可用

analyze.py 不需要太复杂,但要有几个关键功能。我写了一个简单版本,你可以直接复制:

import sys
import pandas as pd
import argparse

def preview_csv(filepath):
    """快速预览CSV信息"""
    df = pd.read_csv(filepath, nrows=5)
    print("列名:", list(df.columns))
    print("数据类型:", df.dtypes.to_dict())
    print("\n前5行数据:")
    print(df.to_string())
    
def describe_numeric(filepath):
    """对数值列做描述性统计"""
    df = pd.read_csv(filepath)
    numeric_cols = df.select_dtypes(include=['number']).columns
    if len(numeric_cols) == 0:
        print("未找到数值列")
        return
    stats = df[numeric_cols].describe().round(2)
    print(stats.to_markdown())

def monthly_trend(filepath, date_col='order_date', value_col='sales'):
    """按月聚合销售额(假设有日期列)"""
    df = pd.read_csv(filepath)
    try:
        df[date_col] = pd.to_datetime(df[date_col])
        df['month'] = df[date_col].dt.to_period('M')
        monthly = df.groupby('month')[value_col].sum().reset_index()
        print("月份 | 总销售额")
        print("---|---")
        for _, row in monthly.iterrows():
            print(f"{row['month']} | {row[value_col]:,.0f}")
    except Exception as e:
        print(f"无法进行时间分析: {e}")

if __name__ == "__main__":
    parser = argparse.ArgumentParser()
    parser.add_argument("--preview", help="预览CSV文件")
    parser.add_argument("--describe", help="对指定CSV做描述统计")
    parser.add_argument("--trend", help="分析月度趋势", nargs='?', const='')
    args = parser.parse_args()
    
    if args.preview:
        preview_csv(args.preview)
    elif args.describe:
        describe_numeric(args.describe)
    elif args.trend:
        monthly_trend(args.trend)
    else:
        print("请指定参数: --preview, --describe, 或 --trend")

注意:这个脚本依赖pandas和argparse,如果你在Claude Code里运行,需要先确保环境有这些包。或者你也可以让Claude在执行前帮你安装:pip install pandas


第五步:把Skill喂给Claude

有两种方式,我推荐第一种:

方式一:Project法(一劳永逸)

  1. 在Claude里创建一个新Project(比如叫“数据分析助手”)
  2. sales-analyst文件夹拖进Project的“Knowledge”区域
  3. 在System Prompt里写一句:“请激活sales-analyst技能,严格按照SKILL.md执行。”

以后只要在这个Project里对话,Claude就会自动加载这个Skill。

方式二:临时上传法

  1. 在普通对话窗口上传SKILL.mdanalyze.py
  2. 然后说:“请加载这个数据分析Skill”
  3. 上传一个测试CSV文件,说“分析一下”


第六步:测试——看看效果

我随手造了一个销售数据sales.csv,列包括:order_date, product, sales, quantity。内容类似这样:

order_date,product,sales,quantity
2025-01-05,笔记本,1200,2
2025-01-12,鼠标,350,5
2025-02-03,键盘,890,1
...

把文件发给Claude,只说了一句:“分析这个销售数据。”

Claude按照Skill的流程,先运行analyze.py --preview sales.csv获取概览,然后对sales和quantity做了描述统计,接着发现日期列,自动做了月度聚合,最后给出洞察。

输出大概是这样的:

数据概览

列名
类型
order_date
object
product
object
sales
int64
quantity
int64

描述性统计

统计量
sales
quantity
count
150
150
mean
876.5
3.2
std
342.1
1.8
min
120
1
25%
450
2
50%
780
3
75%
1150
4
max
2500
10

月度趋势

月份
总销售额
2025-01
24,500
2025-02
31,200
2025-03
28,900

核心洞察

  • 2月份销售额最高,达到31,200,可能是春节促销带动
  • 鼠标产品销量最大,但客单价低;笔记本客单价高但销量少
  • 3月份销量略有回落,建议关注库存

看到了吗?全程我只说了一句话,其他都是Skill自动完成的。


第七步:优化——让Skill更“懂你”

跑通之后,你肯定会想让它更符合自己的需求。这里有几个优化方向:

  1. 增加更多分析维度:比如在SKILL.md里加上“如果有地区字段,自动做地区排名”。Claude会根据你的要求,在执行时调用脚本的不同参数。

  2. 让脚本更智能:比如自动识别哪一列是销售额、哪一列是日期,不需要硬编码order_datesales。可以在脚本里加入检测逻辑:寻找包含“date”的列名、包含“sales”的列名。

  3. 输出定制化:如果你需要把分析结果发邮件或者生成PPT,可以在SKILL.md里加一句:“分析结束后,询问用户是否生成PDF报告。”然后调用另一个脚本。

  4. 处理异常:如果CSV格式不对,或者缺少关键列,让Claude用友好语言提示用户,而不是抛出堆栈错误。


写在最后

从开始创建到第一次运行,你猜我花了多久?不到十分钟。当然,第一次可能要多花几分钟理解结构,但一旦上手,后面再创建其他Skill就快多了。

现在,我每天面对不同的数据文件,再也不用重复解释流程了。一句“分析一下”,Claude自动干活,我喝着咖啡等结果就好。

Skill这个功能,本质上就是把你的“个人经验”固化成AI可以执行的“程序”。你越了解自己的业务,做出来的Skill就越强大。

如果你在做的过程中遇到什么问题,比如脚本权限、路径错误、或者Claude就是不触发Skill,欢迎留言。我把踩过的坑都写在脑子里了,随时可以分享。

开始你的第一个数据分析Skill吧,10分钟就够了。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。