数据分析与可视化 #

场景概述 #

数据分析应用范围 #

text
┌─────────────────────────────────────────────────────────────┐
│                  数据分析应用范围                             │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  数据处理                                                    │
│  ├── 数据清洗                                               │
│  ├── 数据转换                                               │
│  ├── SQL 生成                                               │
│  └── 代码生成                                               │
│                                                             │
│  数据分析                                                    │
│  ├── 趋势分析                                               │
│  ├── 对比分析                                               │
│  ├── 异常检测                                               │
│  └── 相关性分析                                             │
│                                                             │
│  报告生成                                                    │
│  ├── 数据报告                                               │
│  ├── 业务报告                                               │
│  ├── 分析报告                                               │
│  └── 决策建议                                               │
│                                                             │
│  可视化建议                                                  │
│  ├── 图表选择                                               │
│  ├── 设计建议                                               │
│  ├── 代码生成                                               │
│  └── 交互设计                                               │
│                                                             │
└─────────────────────────────────────────────────────────────┘

数据处理 #

SQL 生成 #

text
场景:根据需求生成 SQL 查询语句

提示词模板:
─────────────────────────────────────────────────
# 角色
你是一位数据库专家,擅长 SQL 查询优化。

# 任务
请根据以下需求生成 SQL 查询语句。

# 数据库信息
- 数据库类型:[MySQL/PostgreSQL/等]
- 表结构:
  [表名]
  - 字段1: 类型
  - 字段2: 类型
  ...

# 查询需求
[描述需要查询的数据]

# 要求
- 优化查询性能
- 添加必要注释
- 考虑边界情况

# 输出格式
## SQL 语句
```sql
[SQL代码]

说明 #

[查询逻辑说明] ─────────────────────────────────────────────────

示例: ─────────────────────────────────────────────────

角色 #

你是一位数据库专家,擅长 SQL 查询优化。

任务 #

请根据以下需求生成 SQL 查询语句。

数据库信息 #

  • 数据库类型:MySQL

  • 表结构: orders (订单表)

    • id: INT, 主键
    • user_id: INT, 用户ID
    • product_id: INT, 产品ID
    • amount: DECIMAL, 金额
    • status: VARCHAR, 状态
    • created_at: DATETIME, 创建时间

    users (用户表)

    • id: INT, 主键
    • name: VARCHAR, 姓名
    • email: VARCHAR, 邮箱
    • city: VARCHAR, 城市

查询需求 #

查询2024年1月每个城市的订单数量和总金额, 只统计已完成的订单,按总金额降序排列。

输出: ─────────────────────────────────────────────────

SQL 语句 #

sql
-- 查询2024年1月各城市订单统计
SELECT 
    u.city AS 城市,
    COUNT(o.id) AS 订单数量,
    SUM(o.amount) AS 总金额
FROM 
    orders o
JOIN 
    users u ON o.user_id = u.id
WHERE 
    o.status = 'completed'  -- 只统计已完成订单
    AND o.created_at >= '2024-01-01' 
    AND o.created_at < '2024-02-01'  -- 2024年1月
GROUP BY 
    u.city
ORDER BY 
    总金额 DESC;

说明 #

  1. 使用 JOIN 连接订单表和用户表
  2. WHERE 条件筛选已完成订单和日期范围
  3. GROUP BY 按城市分组统计
  4. ORDER BY 按总金额降序排列
  5. 使用 COUNT 和 SUM 聚合函数计算订单数和总金额

性能优化建议 #

  1. 确保 orders.status 和 orders.created_at 有索引
  2. 如果数据量大,考虑使用覆盖索引
  3. 可以添加 LIMIT 限制返回行数 ─────────────────────────────────────────────────
text

### 数据清洗代码生成

场景:生成数据清洗代码

提示词模板: ─────────────────────────────────────────────────

角色 #

你是一位数据工程师,擅长数据清洗和处理。

任务 #

请编写数据清洗代码。

数据描述 #

[数据格式和内容描述]

清洗需求 #

[需要处理的问题]

技术栈 #

  • 语言:Python
  • 库:pandas

要求 #

  • 处理缺失值
  • 处理异常值
  • 数据类型转换
  • 添加注释

输出格式 #

代码实现 #

python
[代码]

处理说明 #

[各步骤说明] ─────────────────────────────────────────────────

示例: ─────────────────────────────────────────────────

角色 #

你是一位数据工程师,擅长数据清洗和处理。

任务 #

请编写用户数据清洗代码。

数据描述 #

CSV 文件,包含用户信息:

  • user_id: 用户ID
  • name: 姓名(可能有空格、特殊字符)
  • age: 年龄(可能有缺失、异常值)
  • email: 邮箱(格式可能不规范)
  • phone: 手机号(格式不统一)
  • register_date: 注册日期(格式不统一)

清洗需求 #

  1. 处理姓名中的空格和特殊字符
  2. 处理年龄缺失值和异常值(0-120范围)
  3. 验证并标准化邮箱格式
  4. 统一手机号格式(11位数字)
  5. 统一日期格式

输出: ─────────────────────────────────────────────────

代码实现 #

python
import pandas as pd
import re
from datetime import datetime

def clean_user_data(df: pd.DataFrame) -> pd.DataFrame:
    """清洗用户数据
    
    Args:
        df: 原始用户数据 DataFrame
    
    Returns:
        清洗后的 DataFrame
    """
    df = df.copy()
    
    # 1. 清洗姓名:去除空格和特殊字符
    df['name'] = df['name'].str.strip()  # 去除首尾空格
    df['name'] = df['name'].str.replace(r'[^\u4e00-\u9fa5a-zA-Z\s]', '', regex=True)
    
    # 2. 处理年龄
    # 将非数字转为 NaN
    df['age'] = pd.to_numeric(df['age'], errors='coerce')
    # 处理异常值:超出范围的设为 NaN
    df.loc[(df['age'] < 0) | (df['age'] > 120), 'age'] = None
    # 填充缺失值为中位数
    df['age'] = df['age'].fillna(df['age'].median())
    # 转为整数
    df['age'] = df['age'].astype(int)
    
    # 3. 验证邮箱格式
    email_pattern = r'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$'
    df['email_valid'] = df['email'].str.match(email_pattern, na=False)
    # 转为小写
    df['email'] = df['email'].str.lower()
    
    # 4. 统一手机号格式
    def clean_phone(phone):
        if pd.isna(phone):
            return None
        # 提取数字
        digits = re.sub(r'\D', '', str(phone))
        # 取后11位
        if len(digits) >= 11:
            return digits[-11:]
        return None
    
    df['phone'] = df['phone'].apply(clean_phone)
    
    # 5. 统一日期格式
    def parse_date(date_str):
        if pd.isna(date_str):
            return None
        # 尝试多种格式
        formats = ['%Y-%m-%d', '%Y/%m/%d', '%d-%m-%Y', '%d/%m/%Y']
        for fmt in formats:
            try:
                return datetime.strptime(str(date_str), fmt).strftime('%Y-%m-%d')
            except ValueError:
                continue
        return None
    
    df['register_date'] = df['register_date'].apply(parse_date)
    
    return df

# 使用示例
# df = pd.read_csv('users.csv')
# cleaned_df = clean_user_data(df)
# cleaned_df.to_csv('users_cleaned.csv', index=False)

处理说明 #

字段 处理方式 说明
name 去除空格和特殊字符 保留中文、英文和空格
age 处理异常值,填充缺失值 范围限制0-120,缺失值用中位数填充
email 验证格式,转为小写 添加有效性标记列
phone 提取11位数字 统一格式
register_date 统一为 YYYY-MM-DD 支持多种输入格式
─────────────────────────────────────────────────
text

## 数据分析

### 趋势分析

场景:分析数据趋势

提示词模板: ─────────────────────────────────────────────────

角色 #

你是一位数据分析师,擅长趋势分析。

任务 #

请分析以下数据的趋势。

数据 #

[数据内容]

分析维度 #

  • 时间范围:[范围]
  • 分析指标:[指标]
  • 对比基准:[基准]

要求 #

  • 识别趋势方向
  • 分析变化原因
  • 预测未来走势
  • 提供建议

输出格式 #

趋势概述 #

[整体趋势描述]

详细分析 #

[分阶段/分维度分析]

关键发现 #

  1. [发现1]
  2. [发现2]

原因分析 #

[趋势变化的原因]

预测与建议 #

[未来预测和建议] ─────────────────────────────────────────────────

示例: ─────────────────────────────────────────────────

角色 #

你是一位数据分析师,擅长趋势分析。

任务 #

请分析以下销售数据的趋势。

数据 #

月份 销售额(万元) 2023-01 120 2023-02 135 2023-03 142 2023-04 138 2023-05 155 2023-06 168 2023-07 175 2023-08 182 2023-09 190 2023-10 185 2023-11 210 2023-12 245

输出: ─────────────────────────────────────────────────

趋势概述 #

2023年销售额整体呈上升趋势,从年初的120万元增长到 年末的245万元,年度增长率约104%。增长曲线呈现 "稳步上升+年末冲刺"的特点。

详细分析 #

第一阶段:平稳起步(1-4月) #

  • 销售额在120-142万元之间波动
  • 月均增长率约5.8%
  • 4月出现小幅回落(-4.2%)

第二阶段:稳步增长(5-9月) #

  • 连续5个月正增长
  • 月均增长率约5.3%
  • 增长势头稳定

第三阶段:年末冲刺(10-12月) #

  • 10月小幅回调(-2.6%)
  • 11-12月大幅增长
  • 12月达到全年峰值(245万元)

关键发现 #

  1. 整体增长强劲:年度销售额翻倍
  2. 季节性明显:年末销售明显高于其他时期
  3. 增长稳定:除个别月份外,持续正增长
  4. 年末效应显著:12月销售额是1月的2倍

原因分析 #

  1. 年末冲刺因素

    • 年底促销活动
    • 预算消耗需求
    • 节日消费高峰
  2. 稳步增长因素

    • 产品竞争力提升
    • 市场拓展效果显现
    • 客户积累效应
  3. 波动因素

    • 4月回落:可能受季节因素影响
    • 10月回落:国庆假期影响

预测与建议 #

2024年预测 #

  • 预计全年增长率:30-50%
  • 预计年末销售额:300-350万元

建议 #

  1. 把握年末机会:加大年末营销投入
  2. 平滑季节波动:开发淡季促销策略
  3. 持续增长动力:拓展新客户、新产品
  4. 关注异常月份:分析4月、10月回落原因 ─────────────────────────────────────────────────
text

## 报告生成

### 数据报告

场景:生成数据分析报告

提示词模板: ─────────────────────────────────────────────────

角色 #

你是一位专业的数据分析师,擅长撰写分析报告。

任务 #

请根据以下数据生成分析报告。

数据 #

[数据内容]

报告要求 #

  • 报告类型:[日报/周报/月报/专项报告]
  • 目标读者:[读者描述]
  • 报告长度:[字数]

输出格式 #

报告标题 #

执行摘要 #

[核心发现概述]

数据概览 #

[关键指标汇总]

详细分析 #

[分维度分析]

结论与建议 #

[结论和建议]

附录 #

[补充数据] ─────────────────────────────────────────────────

示例: ─────────────────────────────────────────────────

角色 #

你是一位专业的数据分析师,擅长撰写分析报告。

任务 #

请根据以下电商数据生成月度分析报告。

数据 #

  • 总订单数:15,680
  • 总销售额:2,345,000元
  • 平均客单价:149.5元
  • 新用户数:3,245
  • 复购率:35.2%
  • 退货率:5.8%
  • 热销品类:服装(35%)、数码(25%)、家居(20%)
  • 流量来源:搜索(45%)、推荐(30%)、直接访问(25%)

输出: ─────────────────────────────────────────────────

2024年1月电商运营分析报告 #

执行摘要 #

本月电商业务表现良好,销售额达234.5万元,订单量15,680单。 新用户增长显著,复购率保持稳定。退货率略有上升, 需关注产品质量和物流服务。

数据概览 #

指标 本月数值 环比变化
总销售额 234.5万元 +12.3%
订单数 15,680 +10.5%
客单价 149.5元 +1.6%
新用户数 3,245 +18.2%
复购率 35.2% +0.8%
退货率 5.8% +0.5%

详细分析 #

一、销售分析 #

整体表现

  • 销售额环比增长12.3%,增长势头良好
  • 客单价稳定,略有提升(+1.6%)
  • 订单量增长是销售额增长的主要驱动力

品类分析

  • 服装品类占比最高(35%),是核心品类
  • 数码品类(25%)增长潜力大
  • 家居品类(20%)表现稳定

二、用户分析 #

新用户获取

  • 新用户数3,245,环比增长18.2%
  • 获客效果显著,营销投入产出比良好

用户留存

  • 复购率35.2%,处于行业平均水平
  • 老用户贡献约65%的销售额

三、流量分析 #

流量来源

  • 搜索流量占比45%,是主要来源
  • 推荐流量30%,有提升空间
  • 直接访问25%,品牌认知度良好

四、问题分析 #

退货率上升

  • 退货率5.8%,环比上升0.5%
  • 主要原因:尺码不合、色差问题
  • 建议:优化尺码指南、改善商品图片

结论与建议 #

主要结论 #

  1. 整体运营状况良好,销售持续增长
  2. 新用户获取效果显著
  3. 退货率需重点关注

改进建议 #

  1. 降低退货率

    • 优化商品详情页
    • 完善尺码指南
    • 提升物流时效
  2. 提升复购率

    • 优化会员体系
    • 增加用户触达
    • 提供复购激励
  3. 拓展流量渠道

    • 加大推荐流量投入
    • 优化搜索关键词
    • 发展社交媒体渠道

附录 #

详细数据表 #

[可附加详细数据表格]

趋势图表 #

[可附加可视化图表] ─────────────────────────────────────────────────

text

## 可视化建议

### 图表选择

场景:根据数据类型推荐合适的可视化方式

提示词模板: ─────────────────────────────────────────────────

角色 #

你是一位数据可视化专家。

任务 #

请为以下数据推荐合适的可视化方式。

数据描述 #

[数据类型和特点]

展示目的 #

[要传达的信息]

要求 #

  • 推荐图表类型
  • 说明选择理由
  • 提供设计建议
  • 生成示例代码

输出格式 #

推荐图表 #

[图表类型]

选择理由 #

[为什么选择这种图表]

设计建议 #

[颜色、布局、交互等建议]

示例代码 #

[Python/JavaScript 代码] ─────────────────────────────────────────────────

示例: ─────────────────────────────────────────────────

角色 #

你是一位数据可视化专家。

任务 #

请为销售趋势数据推荐可视化方式。

数据描述 #

  • 类型:时间序列数据
  • 内容:12个月的销售额
  • 特点:有趋势、有季节性波动

展示目的 #

展示销售额的变化趋势和季节性特征

输出: ─────────────────────────────────────────────────

推荐图表 #

主图表:折线图 辅助图表:面积图 + 标注点

选择理由 #

  1. 折线图最适合展示时间序列数据的趋势变化
  2. 可以清晰看到:
    • 整体趋势方向
    • 季节性波动
    • 关键转折点
  3. 面积图可以强调数值的累积感
  4. 标注点可以突出关键数据

设计建议 #

颜色方案 #

  • 主色调:蓝色系(专业、可信)
  • 强调色:橙色(突出关键点)
  • 背景:浅灰或白色

布局建议 #

  • X轴:月份,倾斜45度显示
  • Y轴:销售额,添加网格线
  • 添加趋势线(可选)
  • 标注最高点和最低点

交互建议 #

  • 鼠标悬停显示详细数值
  • 可缩放查看特定时间段
  • 支持数据导出

示例代码 #

Python (Matplotlib) #

python
import matplotlib.pyplot as plt
import numpy as np

# 数据
months = ['1月', '2月', '3月', '4月', '5月', '6月',
          '7月', '8月', '9月', '10月', '11月', '12月']
sales = [120, 135, 142, 138, 155, 168, 175, 182, 190, 185, 210, 245]

# 创建图表
plt.figure(figsize=(12, 6))

# 绘制折线图
plt.plot(months, sales, 'b-o', linewidth=2, markersize=8, label='销售额')

# 填充面积
plt.fill_between(months, sales, alpha=0.3)

# 标注最高点和最低点
max_idx = np.argmax(sales)
min_idx = np.argmin(sales)
plt.annotate(f'最高: {sales[max_idx]}万', 
             xy=(months[max_idx], sales[max_idx]),
             xytext=(10, 10), textcoords='offset points',
             fontsize=10, color='orange')
plt.annotate(f'最低: {sales[min_idx]}万',
             xy=(months[min_idx], sales[min_idx]),
             xytext=(10, -15), textcoords='offset points',
             fontsize=10, color='red')

# 设置标签
plt.xlabel('月份', fontsize=12)
plt.ylabel('销售额(万元)', fontsize=12)
plt.title('2023年月度销售额趋势', fontsize=14, fontweight='bold')

# 添加网格
plt.grid(True, linestyle='--', alpha=0.7)

# 调整布局
plt.tight_layout()
plt.show()

JavaScript (ECharts) #

javascript
option = {
    title: {
        text: '2023年月度销售额趋势'
    },
    tooltip: {
        trigger: 'axis'
    },
    xAxis: {
        type: 'category',
        data: ['1月', '2月', '3月', '4月', '5月', '6月',
               '7月', '8月', '9月', '10月', '11月', '12月']
    },
    yAxis: {
        type: 'value',
        name: '销售额(万元)'
    },
    series: [{
        data: [120, 135, 142, 138, 155, 168, 175, 182, 190, 185, 210, 245],
        type: 'line',
        smooth: true,
        areaStyle: {
            opacity: 0.3
        },
        markPoint: {
            data: [
                { type: 'max', name: '最大值' },
                { type: 'min', name: '最小值' }
            ]
        }
    }]
};

─────────────────────────────────────────────────

text

## 最佳实践

### 数据分析提示词原则

  1. 明确分析目标 ├── 要回答什么问题 ├── 要发现什么规律 └── 要支持什么决策

  2. 提供完整上下文 ├── 数据来源 ├── 数据范围 ├── 业务背景 └── 相关指标定义

  3. 指定分析维度 ├── 时间维度 ├── 分类维度 ├── 对比维度 └── 聚合维度

  4. 明确输出要求 ├── 报告格式 ├── 分析深度 ├── 可视化需求 └── 建议要求

  5. 考虑实际应用 ├── 可操作性 ├── 数据可靠性 ├── 结论验证 └── 持续更新

text

## 学习总结

恭喜你完成了 Prompt Engineering 的全部学习!你已经掌握了:

- 基础概念和原理
- 核心技术和技巧
- 进阶应用方法
- 安全防护措施
- 效果评估方法
- 实战应用案例

继续实践,不断提升你的 Prompt Engineering 技能!
最后更新:2026-04-05