🚀 快速安装

复制以下命令并运行,立即安装此 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. 渐进式分析:从简单到复杂逐步进行分析
  3. 使用可视化:使用多种图表来发现模式
  4. 验证假设:始终验证关于数据的假设
  5. 可复现性:记录分析代码和结果

约束条件

必需规则(必须遵守)

  1. 保留原始数据(在副本上操作)
  2. 记录分析过程
  3. 验证结果

禁止事项(不得违反)

  1. 不要暴露敏感的个人数据
  2. 不要得出没有数据支持的结论

参考资料

示例

示例 1:基本用法

示例 2:高级用法

📄 原始文档

完整文档(英文):

https://skills.sh/supercent-io/skills-template/data-analysis

💡 提示:点击上方链接查看 skills.sh 原始英文文档,方便对照翻译。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。