AI编程实战之AI辅助数据分析实操篇
将多份 Excel 资料交给 AI 辅助分析时,如何按数据理解、清洗合并、发散收敛和输出交付的顺序开展实操。
引言:把分析工作拆成可核对的交付物
AI 辅助数据分析的价值,不是跳过业务判断、直接让模型给出结论,而是把资料理解、清洗、计算、解释和呈现等重复工作拆开处理。课程实操反复强调两个原则:每一步都要有明确交付物,以及优先优化过程,而不是只修补一次结果。
以多份 Excel 表为例,可以把一次分析拆成四个阶段:
- 让 AI 学习文件结构和业务字段,输出数据理解摘要;
- 按明确键值合并表格、识别并处理脏数据;
- 先发散探索可能规律,再按明确问题收敛结论;
- 在结果复核后,按使用场景生成 Excel、PPT、Word 或网页报告。
每个阶段都应允许人工检查和回退。这样即使结果不符合预期,也能定位是资料理解、清洗规则、分析逻辑,还是输出格式出了问题。
一、开始前:整理资料、明确目标与安全边界
将同一次分析需要的原始工作簿、字段说明和任务说明放在一个独立文件夹中,避免把无关文件混入对话。向 AI 提交资料时,应让它同时看到必要的源文件和任务说明,而不是只粘贴一段脱离数据上下文的提示词。
在上传前先做三项检查:
- 资料范围:确认哪些表是本次分析的输入,哪些仅作参考;
- 数据权限:个人信息、客户资料、经营数据和内部文档应先脱敏,并确认可提交给所使用的 AI 服务;
- 分析目的:写清要解决的问题、目标用户、时间范围、输出用途和不应得出的结论。
可以用下面的任务说明约束第一步:
# 用途:要求 AI 先学习数据,而不是直接给出未经核对的结论。
# 使用前:将涉及个人信息、账号、订单号或商业敏感信息的内容脱敏;只附上完成本次任务需要的文件。
请阅读已提供的工作簿和说明文件,先输出“数据理解摘要”,不要修改任何原始文件。
摘要应包含:每个工作表的用途、字段含义、主键或可能的关联字段、时间范围、缺失值与异常值线索。
请列出你尚不能确定的字段含义和需要我确认的业务规则。
本次分析目标是:________。
本次不应根据数据推断:________。
这一步的交付物是数据理解摘要。应逐项核对 AI 是否正确识别了表名、列名、单位、日期范围和关联字段;若不正确,先补充字段说明或改正任务描述,再进入下一步。
二、合并与清洗:先定义规则,再让 AI 执行
多表分析的难点往往不是生成图表,而是确认表之间怎样关联。合并前需要明确:使用哪一个或哪几个字段作为关联键、键值是否唯一、不同表的日期粒度是否一致,以及字段名称相同是否代表相同业务口径。
1. 处理脏数据不能一刀切
课程涉及空值、错误值和异常值的处理。实际操作时,是否删除、补全或保留某条记录,必须服务于分析目的:
| 问题 | 不能直接假定的处理方式 | 应先确认的业务含义 |
|---|---|---|
| 空值 | 直接删除或直接填 0 | 是缺失、停业、尚未录入,还是确实为 0? |
| 重复记录 | 直接去重 | 是重复导入,还是同一对象的多次有效记录? |
| 异常金额或数量 | 直接剔除 | 是录入错误、单位错误,还是需要单列说明的真实极端值? |
| 无法匹配的键 | 直接丢弃 | 是主数据缺失、键格式不一致,还是关联规则错误? |
应保留原始文件,将清洗后的数据另存,并记录每一条处理规则。AI 可以生成清洗和合并代码,但对关键规则,仍应由熟悉业务的人复核。
2. 用代码让规则可重复执行
AI 处理表格任务通常会生成代码或调用代码执行环境。了解基础 Python 有助于阅读生成的逻辑、定位错误和减少反复试错,但不应假定任何具体 AI 产品都使用同一种语言或执行方式。
以下示例展示的是一种典型的 Pandas 合并与检查写法。字段名和规则需要替换为实际数据口径:
import pandas as pd # 导入 Pandas,用于读取、清洗和合并表格数据。
orders = pd.read_excel("orders.xlsx") # 读取订单明细表;保留原始文件不做覆盖。
customers = pd.read_excel("customers.xlsx") # 读取客户信息表。
# 先检查关联键是否为空,避免缺失键在合并后造成难以解释的结果。
orders_with_key = orders.dropna(subset=["customer_id"])
# 按客户编号左连接,保留订单主表全部记录,便于后续检查未匹配的客户信息。
merged = orders_with_key.merge(customers, on="customer_id", how="left", validate="many_to_one")
# 标记未匹配记录,而不是静默删除;这些记录需要回到业务数据中确认原因。
merged["customer_match_status"] = merged["customer_name"].notna().map(
{True: "matched", False: "unmatched"}
)
merged.to_excel("merged_for_review.xlsx", index=False) # 输出待复核文件,供人工检查清洗与匹配结果。
示例中的 validate="many_to_one" 用于要求“订单可对应多个、客户表中每个客户编号只能出现一次”。若实际业务不符合这一关系,应先调整关联规则,而不是强行删掉重复记录。
3. 提示词必须带有行业语义
课程指出,通用提示词无法替代岗位经验。相同的“销售额”“用户数”或“活跃度”在不同行业可能有不同口径。提示词里应写入具体的字段含义、计算规则、排除条件和复核要求,而不是只要求“把表分析一下”。
# 用途:让 AI 依据已确认的规则合并并清洗表格。
# 原则:遇到规则不明确、关联失败或异常比例过高时,先输出问题清单,不要自行猜测或删除。
请按 customer_id 合并订单表与客户表;订单表为主表。
将空 customer_id、无法解析的日期和负数金额分别统计数量并输出到“问题清单”。
不要删除未匹配客户记录;请标记其状态并保留原始行号。
输出一份“合并结果待复核表”和一份“清洗规则说明”。
三、先发散,再收敛:把探索与结论分开
两份课程笔记都使用“发散”和“收敛”描述分析过程:
- 发散:在已清洗、已理解的数据范围内,探索趋势、分组差异、异常点和可能的关联;
- 收敛:围绕明确业务问题,筛选证据、限定结论表达,并以固定格式输出。
发散阶段的目的不是让 AI 任意编故事,而是帮助提出可验证的线索。例如按时间、地区、客户类型、品类或渠道分组,寻找明显变化,再回到原始数据和业务背景核对。
收敛阶段则必须提出明确问题。模糊的“帮我总结一下”通常会得到宽泛描述,难以用于工作。更好的提问应指定分析对象、比较维度、时间范围、判断阈值和输出结构。
# 用途:在数据已清洗并经人工复核后,生成可交付的结论草稿。
# 限制:结论只依据已提供数据;相关性不等于因果关系;证据不足时必须说明。
请分析 2026 年 1 至 3 月的已清洗订单汇总表。
1. 分别比较不同小时段、品类和用户分层的订单量、成交额与转化率。
2. 列出变化最明显的 3 个现象,并给出对应数据依据。
3. 对每个现象说明可能原因与需要进一步验证的信息,不要直接作因果结论。
4. 最后按“发现、证据、业务影响、建议验证动作”四列输出。
课程案例提到电商数据中可能出现浏览多、特定晚间时段活跃、不同人群偏好不同等现象。这类结果应被视为待验证的样本分析,而不能脱离数据来源、指标定义和时间范围,直接推广为所有业务的普遍规律。
四、输出交付:在分析逻辑确认后再做美化
分析结论与展示形式应当分开。先确认清洗规则、计算口径和结论证据,再根据受众制作输出。课程提到的常见形式包括:
- Excel:适合继续核对明细、筛选和交接;
- PPT 或 Word:适合正式汇报和文字说明;
- HTML 页面:适合在浏览器中展示交互式摘要或内部分享。
HTML 页面便于展示,不代表可以随意公开。若页面包含业务数据、下载链接或个人信息,仍应设置访问控制,并确认分享范围。
对于 Excel 输出,可在数据确认后进行排序、高亮、冻结窗格、数字格式和图表美化。openpyxl 是 Python 中常用的 Excel 读写与样式处理库之一:
from openpyxl import load_workbook # 导入 openpyxl,用于修改已经复核过的 Excel 输出文件。
from openpyxl.styles import Font, PatternFill # 导入字体和填充样式,用于突出表头。
workbook = load_workbook("analysis_result.xlsx") # 打开已确认计算逻辑的结果文件。
sheet = workbook["Summary"] # 选择需要展示的汇总工作表。
header_fill = PatternFill("solid", fgColor="1F4E78") # 定义表头背景颜色。
for cell in sheet[1]: # 遍历第一行表头单元格。
cell.font = Font(color="FFFFFF", bold=True) # 将表头设为白色粗体字。
cell.fill = header_fill # 应用表头背景颜色。
sheet.freeze_panes = "A2" # 冻结首行,便于浏览较长的结果表。
workbook.save("analysis_result_formatted.xlsx") # 另存为美化后的文件,保留原结果文件以便追溯。
美化只能提升可读性,不能代替数据复核。重要结论仍需检查样本量、计算口径、异常记录和业务解释是否成立。
五、常用 Python 库与模型选择的实用边界
课程提到几个常用库,适合把它们理解为工具箱中的不同部件:
| 工具 | 常见用途 | 使用时的注意事项 |
|---|---|---|
| Pandas | 表格读取、清洗、分组、合并和汇总 | 要明确字段类型、缺失值含义和关联键约束 |
| NumPy | 数值计算和数组处理 | 多数常规 Excel 任务不必直接使用,但常被其他分析库依赖 |
| openpyxl | .xlsx 文件读写、格式与样式处理 |
适合生成或美化工作簿;保存前应确认未破坏公式、宏或特殊格式 |
import pandas as pd 中的 as pd 是给模块设置别名,便于后续调用。Python 标准库随 Python 安装提供;第三方库则需要通过包管理器安装。AI 工具可能帮助生成安装命令,但执行前仍应核对包名、来源、版本和许可证。
第三方依赖存在供应链风险,不能只以“是否主流”作为唯一判断标准。更稳妥的做法是使用官方或可信软件源、固定版本、查看维护状态与许可证、在隔离环境中测试,并避免在没有审查的情况下执行来历不明的安装脚本。
对于模型选择,也不宜假设所有产品的自动模式都会选择“最优模型”或“随机模型”。不同服务的自动路由策略并不公开且会变化。涉及重要数据分析时,建议用小样本比较候选模型在字段理解、代码正确性和结果可解释性方面的表现,再结合成本、速度、隐私和可用性作出选择。
六、一次完整实操的复核清单
- 原始文件是否保留,上传资料是否已脱敏并获得授权?
- AI 的数据理解摘要是否与真实表结构、字段口径和时间范围一致?
- 合并键是否正确,未匹配、重复和异常记录是否被标记并解释?
- 清洗规则是否与分析目的一致,是否保留了可追溯的处理说明?
- 发散阶段发现的现象是否有数据依据,是否避免把相关性写成因果性?
- 收敛阶段的结论是否明确回答了业务问题,并说明了证据、限制和下一步验证动作?
- 输出文件是否适合目标受众,且未泄露不应分享的数据?
本篇小结
AI 辅助数据分析的核心不是让模型替代业务判断,而是用模型加快资料理解、清洗执行、代码生成和结果呈现。实操应按“先学习数据、再按规则合并清洗、先发散探索再收敛结论、最后独立输出”的顺序推进,并且每一步都设置可检查的交付物。
当结果有问题时,应回到字段说明、清洗规则、分析步骤或输出要求中定位原因,优先优化过程,而不是只手动修改一次结果。这样才能将一次性的分析任务逐步沉淀为可复用、可审查的工作流程。
技术指导来自:Python4Office