数据分析
Documents数据分析 is an Agent Skill for documents published in the maka-agent/maka-agent repository on GitHub: a SKILL.md instruction file an AI agent can load to do this task.
当用户有本地数据文件(CSV/JSON/Excel)需要做统计分析、探索、可视化或建模时使用。典型问法:"帮我分析这份销售数据"、"看看这个 CSV 有什么规律"、"做个用户分群/RFM 分析"、"跑个 A/B 检验"、"把这份数据画成图并给结论"。
How to use this skill
Bring this guide into your coding agent with a prompt tailored to the tool you use.
- Open your project in Codex.
- Copy and paste the prompt below.
- Review files and risks before approving any action.
Inspect the Agent Skill at https://github.com/maka-agent/maka-agent/blob/HEAD/apps/desktop/resources/bundled-skills/data-analysis/SKILL.md and all supporting files. Report provenance, permissions, scripts, dependencies, and security risks. Propose an exact installation into .agents/skills/数据分析, but wait for my approval before writing files or running scripts.
Copying this prompt does not install or run the skill. Review third-party files before use.
数据分析
目标
读取本地数据文件(CSV / JSON / Excel),用 Python(pandas + numpy + matplotlib 等)完成从数据清洗、探索性分析、统计检验/建模到可视化的全流程,最终产出有业务含义的结论与建议,而不只是一堆图表和数字。核心是:让数据说话,把统计结果翻译成决策者能用的洞察。
适用场景:业务数据分析(销售/运营/KPI)、客户细分与画像(RFM/聚类)、A/B 测试统计分析、预测建模与机器学习、以及任何"我有数据但需要有人帮我看出门道"的问题。
工作流步骤
1. 理解数据与分析目标
先搞清楚要回答什么问题,再动手:
- 业务问题:用户想弄清什么?(趋势?占比?分群?因果?预测?)分析目标决定方法选择。
- 数据现状:文件路径、格式、大致规模、关键字段含义、时间范围。让用户简述,或先读取样本自行探查。
- 成功标准:用户要的是探索性洞察、一个明确结论、还是一个可用的模型/预测。
先用 Read 或一小段 Python 读取文件头部,摸清列名、数据类型、行数、是否有表头,再规划分析路径。
2. 搭建分析环境
分析用 Bash 调用 Python 完成。先确认环境可用:
- 检查 python 与依赖:
python3 -c "import pandas, numpy, matplotlib"。若缺失,用pip install pandas numpy matplotlib openpyxl scipy scikit-learn安装(openpyxl 用于 Excel,scipy 用于统计检验,scikit-learn 用于建模/聚类)。 - 图表用 matplotlib 的非交互后端:脚本开头设
import matplotlib; matplotlib.use("Agg"),把图保存为 PNG 文件而非弹窗显示。 - 中文图表需设置中文字体避免乱码,例如
plt.rcParams["font.sans-serif"] = ["Arial Unicode MS", "PingFang SC", "SimHei"]和plt.rcParams["axes.unicode_minus"] = False。
把分析脚本用 Write 写成 .py 文件再用 Bash 执行,便于复用、检查和让用户复现;不要把长逻辑塞进一行行命令。所有产出(清洗后数据、图表 PNG)保存到与源数据同目录或用户指定目录。
3. 数据加载与清洗
- 加载:CSV 用
pd.read_csv(注意分隔符、编码,中文文件常需encoding="utf-8"或gbk);JSON 用pd.read_json或pd.json_normalize(嵌套结构需展平);Excel 用pd.read_excel(注意 sheet 名、表头行)。 - 体检:打印
df.shape、df.dtypes、df.head()、df.describe()、df.isnull().sum(),先了解数据全貌。 - 清洗:处理缺失值(删除/填充/标记,说明理由)、去重、纠正数据类型(日期解析、数值转换)、处理异常值与离群点(先识别,再决定保留/剔除/截断,并说明依据)、统一分类字段的取值。
- 记录:清洗每一步都说明做了什么、影响了多少行、为什么这么处理。清洗决策会影响结论,必须透明。
4. 分析与建模
根据目标选择方法,从简单到复杂:
- 描述性统计与探索(EDA):分组聚合(
groupby)、透视表(pivot_table)、分布、相关性。先看清数据的基本规律。 - 趋势与对比:时间序列趋势、类别占比、地区/维度对比、同比环比。
- 客户/样本细分:RFM 分析(按最近购买、频次、金额打分分层)、聚类(KMeans 等,先做特征标准化,用轮廓系数等评估簇数合理性)。
- 假设检验(A/B 测试):先验证分组随机性与样本量;选对检验方法(均值比较用 t 检验,比率比较用卡方/比例检验);报告 p 值、效应量、置信区间,并解释统计显著是否等于业务显著。
- 预测建模:明确特征与目标;做特征工程;划分训练/验证集(时间序列按时间切分,勿随机打乱);对比多个算法;用合适指标评估(回归看 MAE/RMSE/R²,分类看准确率/精确率/召回/AUC);给出预测的不确定性/置信区间;警惕过拟合与数据泄露。
每一步都验证中间结果是否合理(数字量级对不对、有没有异常),发现异常回头查数据。
5. 可视化
用图表让结论一目了然,图服务于结论而非装饰:
- 选对图表类型:趋势用折线、对比用柱状、占比用饼图/堆叠柱、分布用直方图/箱线图、关系用散点、相关性用热力图、分群结果用散点+颜色。
- 每张图都要有标题、坐标轴标签、必要的图例与单位;关键结论可在图上标注。
- 保存为 PNG(
plt.savefig("xxx.png", dpi=150, bbox_inches="tight")),在报告中引用文件路径。
6. 结论与建议
把分析结果翻译成业务语言:
- 提炼 3-5 条关键发现,每条都有数据支撑(引用具体数字和图表)。
- 给出可执行的建议,说明依据。
- 诚实标注局限:数据质量问题、样本偏差、未能验证的假设、结论的适用边界。
输出格式约定
除非用户另有指定,交付包含:
- 分析脚本:写成可复现的
.py文件,保存到用户目录,注释清晰。 - Markdown 分析报告,结构为:
- 数据概况:数据来源、规模、字段说明、时间范围。
- 数据清洗说明:做了哪些处理及其影响。
- 关键发现:分主题呈现,每条发现配数据与图表引用。核心指标用表格呈现。
- 图表:引用生成的 PNG 文件路径,附一句话解读每张图说明了什么。
- 结论与建议:可执行建议 + 依据。
- 局限与后续:数据/方法的局限,以及建议的下一步分析。
数字规范:报告里每个结论性数字都应来自实际运行代码的输出,不凭印象估计。
边界与注意事项
- 数字来自真实计算,绝不编造。所有统计量、图表数据必须是脚本实际跑出来的结果。如果代码没跑通,先修脚本,不要凭空写数字。运行后核对输出量级是否合理。
- 清洗透明。缺失值、异常值、去重的处理方式都会影响结论,必须显式说明,让用户能判断是否认同你的处理。
- 统计严谨。相关不等于因果;统计显著不等于业务重要;小样本结论要谨慎。检验前确认前提假设(分布、独立性、样本量)。
- 避免数据泄露与过拟合(建模时):特征工程和标准化只能基于训练集拟合;时间序列不能随机划分;用验证集诚实评估。
- 保护数据隐私:本地数据可能含敏感信息(用户手机号、身份证等)。分析中不外传数据,报告中对个体标识做脱敏,不把原始个人信息写进结论。
- 大数据量注意性能:文件很大时先抽样探查、分块读取(
chunksize),或只加载需要的列,避免内存溢出。 - 可复现:脚本应当能被用户重新运行得到相同结果;固定随机种子(
random_state)以保证聚类/划分的可复现性。