数据分析师Skill data-analyst

这是一个用于自动化数据分析的Python技能包,专注于处理CSV格式数据集。核心功能包括:智能缺失值检测与插补、数据质量评估、统计分析以及交互式仪表板可视化。通过集成Pandas、Scikit-learn和Plotly Dash等技术,提供从数据清洗到探索性分析的一站式解决方案。关键词:数据分析,缺失值处理,数据可视化,Python,CSV,数据清洗,探索性数据分析,交互式仪表板,Plotly Dash,智能插补。

数据分析 0 次安装 0 次浏览 更新于 2/28/2026

名称: 数据分析师 描述: 此技能应用于分析CSV数据集、通过智能插补处理缺失值,并创建交互式仪表板以可视化数据趋势。适用于数据质量评估、自动缺失值检测与填充、统计分析以及为探索性数据分析生成Plotly Dash仪表板的任务。

数据分析师

概述

此技能为CSV数据集的数据分析工作流提供全面能力。它能自动分析缺失值模式,使用适当的统计方法智能插补缺失数据,并创建交互式Plotly Dash仪表板以可视化趋势和模式。该技能将自动化的缺失值处理与丰富的交互式可视化相结合,以支持端到端的探索性数据分析。

核心能力

数据分析师技能提供三种主要能力,可以独立使用或作为完整工作流使用:

1. 缺失值分析

自动检测和分析数据集中的缺失值,识别模式并建议最优插补策略。

2. 智能插补

应用针对每列数据类型和分布特征定制的复杂插补方法。

3. 交互式仪表板创建

生成包含多种可视化类型的综合Plotly Dash仪表板,用于趋势分析和探索。

完整工作流

当用户请求包含缺失值处理和可视化的完整数据分析时,请遵循此工作流:

步骤1:分析缺失值

运行缺失值分析脚本以了解数据质量:

python3 scripts/analyze_missing_values.py <输入文件.csv> <输出分析.json>

此操作的作用

  • 检测每列中的缺失值
  • 识别数据类型(数值型、分类型、时间型等)
  • 计算缺失值统计信息
  • 为每列建议适当的插补策略
  • 生成详细的JSON报告和控制台输出

查看输出以了解:

  • 哪些列有缺失数据
  • 缺失值的百分比
  • 每列推荐的插补方法
  • 推荐每种方法的原因

步骤2:插补缺失值

基于分析应用自动插补:

python3 scripts/impute_missing_values.py <输入文件.csv> <分析.json> <输出插补后.csv>

此操作的作用

  • 加载分析结果(如果未提供则执行分析)
  • 对每列应用最优插补方法:
    • 均值:用于正态分布的数值数据
    • 中位数:用于偏态数值数据
    • 众数:用于分类变量
    • KNN:用于具有相关性的多元数值数据
    • 前向填充:用于时间序列数据
    • 常量:用于高基数文本字段
  • 处理边缘情况(在适当时删除行/列)
  • 生成包含前后统计信息的插补报告
  • 保存清理后的数据集

脚本自动执行

  • 删除缺失值>70%的列
  • 删除关键ID列缺失的行
  • 对相关变量执行批量KNN插补
  • 创建详细的插补日志

步骤3:创建交互式仪表板

生成交互式Plotly Dash仪表板:

python3 scripts/create_dashboard.py <插补后文件.csv> <输出目录> <端口>

示例

python3 scripts/create_dashboard.py data_imputed.csv ./visualizations 8050

此操作的作用

  • 自动检测列类型(数值型、分类型、时间型)
  • 创建全面的可视化:
    • 汇总统计表:所有数值列的描述性统计
    • 时间序列图:如果存在日期/时间列,则进行趋势分析
    • 分布图:用于理解数据分布的直方图
    • 相关性热力图:数值变量之间的关系
    • 分类分析:分类变量的条形图
    • 散点图矩阵:变量之间的成对关系
  • 启动交互式Dash Web服务器
  • 可选地保存静态HTML可视化

访问仪表板http://127.0.0.1:8050(或指定端口)

单独使用案例

使用案例A:快速缺失值评估

当用户希望在不进行插补的情况下了解数据质量时:

python3 scripts/analyze_missing_values.py data.csv

查看控制台输出以了解缺失值模式并获取建议。

使用案例B:仅插补

当用户有一个包含缺失值的数据集并希望获得清理后的数据时:

python3 scripts/impute_missing_values.py data.csv

此操作一步完成分析和插补,生成data_imputed.csv

使用案例C:仅可视化

当用户有一个干净的数据集并希望进行交互式可视化时:

python3 scripts/create_dashboard.py clean_data.csv ./visualizations 8050

此操作无需任何预处理即可创建完整的仪表板。

使用案例D:自定义插补策略

当用户希望审查和调整插补策略时:

  1. 首先运行分析:

    python3 scripts/analyze_missing_values.py data.csv analysis.json
    
  2. 查看analysis.json并与用户讨论策略

  3. 如果需要,修改脚本中的插补逻辑或参数

  4. 运行插补:

    python3 scripts/impute_missing_values.py data.csv analysis.json data_imputed.csv
    

理解插补方法

该技能基于数据特征使用智能插补策略。关键方法包括:

  • 均值/中位数:用于数值数据(正态分布用均值,偏态用中位数)
  • 众数:用于分类变量(最频繁的值)
  • KNN(K-最近邻):用于变量相关的多元数值数据
  • 前向填充:用于时间序列数据(将最后一个观测值向前传递)
  • 插值:用于平滑的时间趋势
  • 常量值:用于高基数文本字段(例如,“未知”)
  • 删除:用于缺失值>70%的列或ID缺失的行

有关每种方法适用情况的详细信息,请参阅references/imputation_methods.md

仪表板功能

交互式仪表板包括:

汇总统计

  • 所有数值列的计数、均值、标准差、最小值、最大值、四分位数
  • 缺失值计数和百分比
  • 可排序的表格格式

时间序列分析

  • 用于时间趋势的带标记的折线图
  • 支持多个序列(最多4个主要指标)
  • 带有精确值的悬停详细信息
  • 用于轻松比较的统一悬停模式

分布分析

  • 所有数值变量的直方图
  • 30个分箱的默认值,用于精细分布视图
  • 多面板布局,便于比较

相关性分析

  • 显示相关系数的热力图
  • 从-1(负相关)到+1(正相关)的颜色编码
  • 标注确切的相关系数值
  • 有助于识别关系

分类分析

  • 分类变量的条形图
  • 显示前10个类别(针对高基数变量)
  • 显示频率计数

散点图矩阵

  • 数值变量的成对散点图
  • 限于5个变量以提高可读性
  • 显示下三角(避免冗余)

设置和依赖项

使用该技能前,请确保已安装依赖项:

pip install -r requirements.txt

所需包:

  • pandas - 数据操作和分析
  • numpy - 数值计算
  • scikit-learn - KNN插补
  • plotly - 交互式可视化
  • dash - Web仪表板框架
  • dash-bootstrap-components - 仪表板样式

最佳实践

对于分析:

  1. 在插补前始终运行分析以了解数据质量
  2. 查看建议的插补方法——它们是建议,不是强制要求
  3. 注意缺失值百分比(>40%需要仔细考虑)
  4. 检查数据类型是否符合预期(例如,数字ID被检测为数值型)

对于插补:

  1. 在插补前保存原始数据集
  2. 查看插补报告以确保方法合理
  3. 检查插补值是否在合理范围内
  4. 考虑为重要变量创建缺失指示器
  5. 记录使用的插补方法以确保可重复性

对于仪表板:

  1. 使用插补/清理后的数据进行最准确的可视化
  2. 如果与非技术利益相关者共享,请保存静态HTML图
  3. 如果同时运行多个仪表板,请使用不同的端口
  4. 对于大型数据集(>10万行),考虑采样以提高渲染速度

处理边缘情况

高缺失率(>50%)

脚本会自动标记缺失值>50%的列。选项:

  • 如果列不重要,则删除
  • 创建缺失指示器变量
  • 调查数据缺失的原因(可能具有信息性)

混合数据类型

如果列包含混合类型(例如,数字和文本):

  • 脚本检测主要类型
  • 考虑在分析前清理列
  • 对混合类型文本列使用常量插补

小型数据集

对于行数<50的数据集:

  • 简单插补(均值/中位数/众数)更稳定
  • 避免KNN(需要足够的邻居)
  • 考虑删除行而不是插补

时间序列间隙

对于具有不规则时间戳的时间序列:

  • 对短间隙使用前向填充
  • 对具有平滑趋势的较长间隙使用插值
  • 在选择方法时考虑采样频率

故障排除

脚本失败,提示“未找到模块”

安装依赖项:pip install -r requirements.txt

仪表板无法启动(端口被占用)

指定不同的端口:python3 scripts/create_dashboard.py data.csv ./viz 8051

KNN插补速度慢

KNN对于大型数据集计算量大。对于>5万行,考虑:

  • 使用更简单的方法(均值/中位数)
  • 首先对数据进行采样
  • 在KNN中使用更少的列

插补值似乎不正确

  • 查看分析报告——检查检测到的数据类型
  • 验证列是否被正确检测(数值型与分类型)
  • 考虑手动调整或使用不同的插补方法
  • 检查可能影响均值/中位数计算的异常值

资源

scripts/

  • analyze_missing_values.py - 全面的缺失值分析,带有自动策略推荐
  • impute_missing_values.py - 使用针对数据特征定制的多种方法进行智能插补
  • create_dashboard.py - 交互式Plotly Dash仪表板生成器,带有多种可视化类型

references/

  • imputation_methods.md - 缺失值插补策略、决策框架和最佳实践的详细指南

其他文件

  • requirements.txt - 该技能的Python依赖项