mcpField
A
analytics-data-analysis

analytics-data-analysis

github.com/mindrally数据与数据库2871.1k 次安装3 周前更新
代码仓库

关于 analytics-data-analysis

面向使用 Python、pandas、可视化库和 Jupyter 的数据分析技能,提供从检查、清理数据到统计验证与报告的可复现流程。

主要功能

  1. 01探索性分析工作流
  2. 02Pandas 转换与验证
  3. 03Matplotlib 和 seaborn 可视化
  4. 04Jupyter 笔记本组织
  5. 05可复现性与依赖管理实践
  6. 06统计检验与结果报告

适用场景

  1. 01检查和清理表格数据集
  2. 02探索关系并可视化发现
  3. 03通过统计检验验证分析
  4. 04整理可复现的笔记本以便共享

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/mindrally/skills --skill analytics-data-analysis

安装后在 Claude Code 中输入/analytics-data-analysis确认已加载。

详细介绍

分析与数据分析

关于使用 pandas、matplotlib、seaborn 和 numpy 进行数据分析、可视化及基于 Jupyter 的工作流的指南。优先考虑可读性、可复现性和向量化操作。

工作流:探索性数据分析流程

  1. 加载并检查 — 使用 pd.read_csv() 或适当的加载器读取数据,检查 .shape、.dtypes、.describe() 和 .isnull().sum()
  2. 清理和转换 — 处理缺失值、修正数据类型、重命名列,并使用 pandas 向量化操作筛除异常值
  3. 探索关系 — 使用 .groupby()、.corr() 和交叉制表来识别模式
  4. 可视化发现 — 使用 matplotlib/seaborn 创建针对性图表;标注坐标轴、添加标题并使用色盲友好型调色板
  5. 验证结果 — 执行统计检验、报告置信区间并验证假设
  6. 记录并分享 — 使用 Markdown 分节组织 notebook,分享前清除输出,并固定依赖项

核心原则

  • 编写简洁、专业的代码,并提供准确的 Python 示例
  • 强调数据分析工作流的可读性和可复现性
  • 使用函数式编程模式;尽量减少类的使用
  • 优先使用向量化操作,而非显式循环,以提升性能
  • 使用描述性变量命名约定(例如,is_valid、has_data、total_count)
  • 遵循 PEP 8 风格指南

快速入门示例

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

# Load and inspect
df = pd.read_csv("data.csv", parse_dates=["timestamp"])
print(f"Shape: {df.shape}, Missing: {df.isnull().sum().sum()}")

# Clean: drop rows missing target, fill numeric gaps with median
df = (
    df.dropna(subset=["revenue"])
    .assign(category=lambda x: x["category"].astype("category"))
    .fillna(df.select_dtypes("number").median())
)

# Analyze: revenue by category
summary = df.groupby("category")["revenue"].agg(["mean", "median", "std"])

# Visualize
fig, ax = plt.subplots(figsize=(10, 6))
sns.boxplot(data=df, x="category", y="revenue", palette="colorblind", ax=ax)
ax.set_title("Revenue Distribution by Category")
ax.set_ylabel("Revenue ($)")
plt.tight_layout()
plt.savefig("revenue_by_category.png", dpi=150)
plt.show()

使用 Pandas 进行数据分析

数据操作最佳实践
  • 使用 pandas 执行所有数据操作和分析任务
  • 使用方法链式调用,实现简洁、易读的转换
  • 使用 loc 和 iloc 明确选择数据
  • 使用 groupby 高效聚合数据
  • 适当使用 merge 和 join 合并数据集
性能优化
  • 使用向量化操作,而非循环
  • 对低基数字符串列使用分类数据类型等高效数据结构
  • 对大于内存容量的数据集,考虑使用 dask
  • 对代码进行性能分析,以识别并优化瓶颈
  • 使用适当的数据类型,尽量减少内存用量
数据验证
  • 验证数据类型和取值范围,确保数据完整性
  • 读取外部数据时,对易出错的操作使用 try-except 代码块
  • 检查缺失值并进行适当处理
  • 转换后验证数据形状和结构

可视化规范

Matplotlib 指南
  • 使用 matplotlib 实现精细的自定义控制
  • 创建清晰、信息丰富且标注规范的图表
  • 始终添加坐标轴标签和标题
  • 在相关可视化中使用一致的配色方案
  • 根据预期用途,以适当的分辨率保存图表
使用 Seaborn 进行统计可视化
  • 使用 seaborn 进行统计可视化,并利用其美观的默认样式
  • 使用内置主题保持样式一致
  • 根据数据选择适当的图表类型(散点图、折线图、柱状图、热力图等)
  • 选择调色板时考虑色盲无障碍需求
可视化的无障碍性
  • 使用色盲友好型调色板
  • 提供替代文本描述
  • 确保视觉元素具有足够的对比度
  • 为复杂图表提供数据表作为替代

Jupyter Notebook 最佳实践

Notebook 结构
  • 使用清晰的 Markdown 分节组织 notebook
  • 以概述/介绍单元格开篇
  • 详细记录分析步骤
  • 让代码单元格聚焦且模块化
  • 以结论和关键发现收尾
执行与可复现性
  • 保持有意义的单元格执行顺序
  • 分享 notebook 前清除输出
  • 使用环境文件(requirements.txt)管理依赖项
  • 记录数据来源和访问方式
  • 包含日期/版本信息
代码组织
  • 在 notebook 开头导入所有库
  • 在专用单元格中定义辅助函数
  • 适当使用魔法命令(%matplotlib inline 等)
  • 保持每个单元格简洁且专注于单一用途

技术要求

核心依赖项
  • pandas:数据操作与分析
  • numpy:数值计算
  • matplotlib:基础绘图库
  • seaborn:统计数据可视化
  • jupyter:交互式计算环境
扩展库
  • scikit-learn:机器学习任务
  • scipy:科学计算
  • plotly:交互式可视化
  • statsmodels:统计建模

分析实施

跟踪与度量
  • 在分析前定义明确的指标和 KPI
  • 记录数据收集方法
  • 实施恰当的数据管道,确保结果可复现
  • 适时创建自动化报告
  • 对笔记本和分析脚本进行版本控制
统计分析
  • 根据数据类型使用恰当的统计检验
  • 在报告点估计值时同时报告置信区间
  • 谨慎解读 p 值
  • 考虑效应量,而不仅仅是统计显著性
  • 记录假设和局限性

错误处理与日志记录

  • 在数据管道中实施恰当的错误处理
  • 记录数据质量问题和异常
  • 在分析工作流中创建验证检查点
  • 记录已知的数据质量问题
  • 在关键阶段加入数据合理性检查

评论

支持 Markdown