解锁Claude新高度:10分钟教你定制一个数据分析Skill
先坦白一下,我以前是个“AI指令复读机”。
每次要分析数据,都得跟Claude说一遍:“你是数据分析专家,请帮我分析这个CSV,先做描述性统计,再看分布,最后给出洞察,输出格式用Markdown表格……”翻来覆去,比念咒还累。
直到我发现Skill这个功能,才算是彻底解脱了。今天我用一个真实的例子——定制一个专门处理销售数据的分析Skill,带你走一遍从零到一的全过程。别担心,全程不需要写什么复杂代码,跟着做,10分钟就能跑通。
第一步:先定一个小目标
我要做的这个Skill,功能很明确:当我把一个销售CSV文件丢给Claude,它能自动完成以下操作:
-
读取CSV,看看都有哪些列 -
自动识别数字列和分类列 -
输出描述性统计(均值、中位数、最大最小值) -
如果是时间序列,自动按月份聚合 -
用文字总结关键发现
最重要的是,这些步骤我再也不用手动告诉它了,丢文件说“分析一下”就行。
第二步:搭架子——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法(一劳永逸)
-
在Claude里创建一个新Project(比如叫“数据分析助手”) -
把 sales-analyst文件夹拖进Project的“Knowledge”区域 -
在System Prompt里写一句:“请激活sales-analyst技能,严格按照SKILL.md执行。”
以后只要在这个Project里对话,Claude就会自动加载这个Skill。
方式二:临时上传法
-
在普通对话窗口上传 SKILL.md和analyze.py -
然后说:“请加载这个数据分析Skill” -
上传一个测试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更“懂你”
跑通之后,你肯定会想让它更符合自己的需求。这里有几个优化方向:
-
增加更多分析维度:比如在SKILL.md里加上“如果有地区字段,自动做地区排名”。Claude会根据你的要求,在执行时调用脚本的不同参数。
-
让脚本更智能:比如自动识别哪一列是销售额、哪一列是日期,不需要硬编码
order_date和sales。可以在脚本里加入检测逻辑:寻找包含“date”的列名、包含“sales”的列名。 -
输出定制化:如果你需要把分析结果发邮件或者生成PPT,可以在SKILL.md里加一句:“分析结束后,询问用户是否生成PDF报告。”然后调用另一个脚本。
-
处理异常:如果CSV格式不对,或者缺少关键列,让Claude用友好语言提示用户,而不是抛出堆栈错误。
写在最后
从开始创建到第一次运行,你猜我花了多久?不到十分钟。当然,第一次可能要多花几分钟理解结构,但一旦上手,后面再创建其他Skill就快多了。
现在,我每天面对不同的数据文件,再也不用重复解释流程了。一句“分析一下”,Claude自动干活,我喝着咖啡等结果就好。
Skill这个功能,本质上就是把你的“个人经验”固化成AI可以执行的“程序”。你越了解自己的业务,做出来的Skill就越强大。
如果你在做的过程中遇到什么问题,比如脚本权限、路径错误、或者Claude就是不触发Skill,欢迎留言。我把踩过的坑都写在脑子里了,随时可以分享。
开始你的第一个数据分析Skill吧,10分钟就够了。
- 点赞
- 收藏
- 关注作者
评论(0)