🚀 快速安装
复制以下命令并运行,立即安装此 Skill:
npx @anthropic-ai/skills install supercent-io/skills-template/data-analysis
💡 提示:需要 Node.js 和 NPM
数据分析
何时使用此技能
- 数据探索:理解新数据集
- 报告生成:得出数据驱动的见解
- 质量验证:检查数据一致性
- 决策支持:提出数据驱动的建议
指示
步骤 1:加载和探索数据
Python(Pandas):
import pandas as pd
import numpy as np
# 加载 CSV
df = pd.read_csv('data.csv')
# 基本信息
print(df.info())
print(df.describe())
print(df.head(10))
# 检查缺失值
print(df.isnull().sum())
# 数据类型
print(df.dtypes)
SQL:
-- 检查表结构
DESCRIBE table_name;
-- 数据采样
SELECT * FROM table_name LIMIT 10;
-- 基本统计
SELECT
COUNT(*) as 总行数,
COUNT(DISTINCT column_name) as 唯一值数,
MIN(numeric_column) as 最小值,
MAX(numeric_column) as 最大值,
AVG(numeric_column) as 平均值
FROM table_name;
步骤 2:数据清洗
# 处理缺失值
df['column'].fillna(df['column'].mean(), inplace=True)
df.dropna(subset=['required_column'], inplace=True)
# 移除重复项
df.drop_duplicates(inplace=True)
# 类型转换
df['date'] = pd.to_datetime(df['date'])
df['category'] = df['category'].astype('category')
# 移除异常值(IQR 方法)
Q1 = df['value'].quantile(0.25)
Q3 = df['value'].quantile(0.75)
IQR = Q3 - Q1
df = df[(df['value'] >= Q1 - 1.5*IQR) & (df['value'] <= Q3 + 1.5*IQR)]
步骤 3:统计分析
# 描述性统计
print(df['numeric_column'].describe())
# 分组分析
grouped = df.groupby('category').agg({
'value': ['mean', 'sum', 'count'],
'other': 'nunique'
})
print(grouped)
# 相关性
correlation = df[['col1', 'col2', 'col3']].corr()
print(correlation)
# 数据透视表
pivot = pd.pivot_table(df,
values='sales',
index='region',
columns='month',
aggfunc='sum'
)
步骤 4:可视化
import matplotlib.pyplot as plt
import seaborn as sns
# 直方图
plt.figure(figsize=(10, 6))
df['value'].hist(bins=30)
plt.title('数值分布')
plt.savefig('histogram.png')
# 箱线图
plt.figure(figsize=(10, 6))
sns.boxplot(x='category', y='value', data=df)
plt.title('各分类的数值分布')
plt.savefig('boxplot.png')
# 热力图(相关性)
plt.figure(figsize=(10, 8))
sns.heatmap(correlation, annot=True, cmap='coolwarm')
plt.title('相关性矩阵')
plt.savefig('heatmap.png')
# 时间序列
plt.figure(figsize=(12, 6))
df.groupby('date')['value'].sum().plot()
plt.title('数值时间序列')
plt.savefig('timeseries.png')
步骤 5:得出见解
# 最高/最低分析
top_10 = df.nlargest(10, 'value')
bottom_10 = df.nsmallest(10, 'value')
# 趋势分析
df['month'] = df['date'].dt.to_period('M')
monthly_trend = df.groupby('month')['value'].sum()
growth = monthly_trend.pct_change() * 100
# 细分分析
segments = df.groupby('segment').agg({
'revenue': 'sum',
'customers': 'nunique',
'orders': 'count'
})
segments['avg_order_value'] = segments['revenue'] / segments['orders']
输出格式
分析报告结构
# 数据分析报告
## 1. 数据集概览
- 数据集:[名称]
- 记录数:X,XXX
- 列数:XX
- 日期范围:YYYY-MM-DD ~ YYYY-MM-DD
## 2. 主要发现
- 发现 1
- 发现 2
- 发现 3
## 3. 统计摘要
| 指标 | 值 |
|------|-----|
| 平均值 | X.XX |
| 中位数 | X.XX |
| 标准差 | X.XX |
## 4. 建议
1. [建议 1]
2. [建议 2]
最佳实践
- 首先理解数据:在分析前了解数据的结构和含义
- 渐进式分析:从简单到复杂逐步进行分析
- 使用可视化:使用多种图表来发现模式
- 验证假设:始终验证关于数据的假设
- 可复现性:记录分析代码和结果
约束条件
必需规则(必须遵守)
- 保留原始数据(在副本上操作)
- 记录分析过程
- 验证结果
禁止事项(不得违反)
- 不要暴露敏感的个人数据
- 不要得出没有数据支持的结论
参考资料
示例
示例 1:基本用法
示例 2:高级用法
📄 原始文档
完整文档(英文):
https://skills.sh/supercent-io/skills-template/data-analysis
💡 提示:点击上方链接查看 skills.sh 原始英文文档,方便对照翻译。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

评论(0)