Data Analyze Refined Skill
适用场景:把任意 Excel/CSV 做成“市场部可用”的一键分析包——自动识别核心维度/指标,产出 CSV + 带目录回链的 Excel 汇总、PNG/SVG 图表、HTML 信息图、市场策略化的 Word 报告。默认输出在数据同级的 outputs/。跨行业通用,优先从字段中判断品牌/产品/客户/渠道/区域/机构等维度再决定分析重点,不要求用户先定义完整分析题。
核心原则
- 市场视角优先:用业务语言解释现状、机会、策略、风险,避免学术表达与模型化术语。
- 报告采用诊断式结构:先识别主要矛盾,再给指导方针和协调行动,避免空泛罗列机会点。
- 自动判别方向:字段缺失时做可替代的洞察,不因“数据不全”而停工。
- 图表服从洞察:图表数量与类型由洞察决定,不固定数量,不为画图而画图。
- 先结论后展开:先给管理层可读结论,再展开证据与明细。
快速使用
# 默认输出到数据同级 outputs/
node src/index.js /path/to/data.xlsx --sheet "导出数据表" --core-dimension "申报企业名称" --value-column "协议采购量" --charts-mode on
# 自定义输出目录
node src/index.js /path/to/data.xlsx --sheet "工作表" --output-dir "/path/to/outputs"
# 图表策略:auto/on/off(默认 auto);截图需要时加 --enable-screenshot
环境依赖:
- Python 3.8+ 且
pip install -r requirements.txt(pandas/numpy/matplotlib/seaborn/openpyxl/python-docx 等) - Node 18+ 可选,仅用于 node 入口;先
npm install(已移除错误依赖)。若 npm 报错可直接用python3 src/main.py ...。
必选/优先参数:
--sheet:Excel 工作表名(CSV 可省略)--core-dimension:核心实体列(优先品牌/企业;若不指定自动推断)--value-column:核心指标列(优先采购量/数量/总量类)--target-brand:可选,目标品牌/申报企业,用于白区/机会(缺省时可取头部品牌或公司名)
自动分析路由(行业无关)
| 字段条件 | 优先洞察 | 常用图表 |
|---|---|---|
| 有时间 + 数值 | 趋势、增长来源、波动风险 | 折线图、面积图 |
| 有地区/城市 + 数值 | 区域机会、白区、区域集中度 | 排名条形图、散点/气泡图 |
| 有渠道 + 数值 | 渠道效率、渠道白区、预算分配 | 分组条形图、漏斗图 |
| 有产品/SKU + 数值 | 结构贡献、价格带、替代机会 | 堆叠条形图、帕累托图 |
| 有客户/机构 + 数值 | 重点客户贡献、覆盖深度、空白客户 | 排名条形图、分布图 |
| 仅有分类 + 数值 | 份额、集中度、TopN 贡献 | 条形图、帕累托图 |
工作流(自动判别 → 市场洞察)
- 读取与预处理
- 去除列名空白,统一别名:
品牌/企业/厂家/供应商 -> 品牌名称;地区/地市/区域 -> 城市(层级字段可按分隔符取市级);目录/品类/类目 -> 产品大类。 - 关键数值列尝试转为数值:
数量/销量/订单量/GMV/金额/合同量/需求量/消耗量。
- 去除列名空白,统一别名:
- 自动判别核心维度/指标
- 核心维度优先顺序:品牌/申报企业/厂家 → 医院/渠道/客户 → 城市/区域 → 其他非唯一度低的分类列。
- 核心指标优先顺序:
--value-column> 数量/销量/订单量/GMV/金额/合同量/需求量 > 首个数值列。
- 降噪规则
- 分类 TopN 仅用于唯一值 2~50 且非 90% 全唯一的列;全一致/全唯一列跳过。
- 相关性需 ≥0.3 且存在 ≥2 个数值列;否则不输出。
- 无时间列/价格列时明确说明不做趋势/价量分析,用结构/覆盖/机会替代。
- 分析视角
- 字段画像、数值统计、分类分布、集中度(Top1/3/5、覆盖 80/90 所需实体数、离群阈值)。
- 份额与交叉:品牌/企业、城市、渠道、品类/SKU;品牌×城市、品牌×渠道、城市×品类、品牌内产品Top。
- 覆盖与客户:覆盖客户数/单客均量(核心维度),客户TOP,目标品牌的客户白区(低份额×高容量)。
- 机会:目标品牌白区(城市总量×目标品牌份额),并生成机会优先级(影响×可行性×投入效率);如有时间/价格/结构则补充价格带、结构占比、时间趋势。
- 输出生成
- CSV:核心维度/城市/目录/大类/覆盖、城市品牌分布、城市Top3、城市白区、机会优先级(城市/医院或客户)、产品分布、品牌产品分布、城市产品分布、品牌产品Top、客户TOP、客户白区等(字段概览/数值统计仅供参考)。
- Excel:
outputs/excel/数据分析汇总.xlsx(目录页+返回目录,含上述业务表;默认不放字段概览/数值统计)。 - 图表:按 charts-mode 生成 PNG+SVG 至
outputs/figures/{png,svg}(核心维度份额、城市、目录、大类、覆盖等,自动判断是否有意义;图表数量由洞察点数决定)。 - HTML:
outputs/html/market_analysis_infographic.html(核心结论/机会摘要+嵌入核心图表),outputs/html/charts_gallery.html(图表汇总)。
- Word 报告:
outputs/reports/<数据名>_分析报告.docx,采用“诊断 -> 指导方针 -> 协调行动”的洞察报告结构,先用通俗但专业的方式解释现状,再用思维模型深挖矛盾、机会与落地动作(无字段时也要明确缺口与决策边界)。
最小可交付(数据稀疏时仍要产出)
- 至少输出:
1页结论+>=1张有效图+>=1个机会清单CSV。 - 若无时间列:移除趋势,强化结构/覆盖/机会。
- 若无金额列:移除价格带,保留数量份额与集中度。
- 若无地区列:移除区域白区,转为渠道/客户白区。
- 若仅 1 个数值列:不做相关性,只做分布、份额、集中度和TopN。
结论页结构(必须包含)
- 现状解读:市场规模/结构/集中度/覆盖等关键事实。
- 洞察体现:增长来源、结构错配、白区/机会清单、渠道/区域差异。
- 未来策略:扩点/深耕/产品结构/价格带/预算调整等可执行路径。
- 风险分析:数据缺口、结构不匹配风险、渠道依赖、集中度过高风险等。
图表选择规则(按洞察驱动)
- 份额/集中度:条形图、堆叠条形或帕累托。
- 结构/价格带:100% 堆叠条形或分组条形。
- 机会/白区:散点或气泡图(量×份额/覆盖)。
- 趋势(仅有时间列):折线或面积图。
- 渠道效率/漏斗:漏斗图或转化率条形。
机会优先级规则(新增)
- 影响分:潜在增量规模(总量 × 份额缺口)。
- 可行性分:已有基础(目标品牌量/既有覆盖)或份额缺口替代。
- 投入效率分:投入强度近似(规模越大通常投入越高,分值越低)。
- 综合优先级分:按“影响 × 可行性 × 投入效率”融合排序,输出高优先/中高优先/中优先/观察。
市场部报告要点
- 核心结论:总量、CR3/CR5、龙头品牌与份额、主力目录/城市、覆盖(覆盖医院数/城市数/单院均量)。
- 产品/结构:品类/SKU Top、品牌内主打产品/结构(有产品或结构列时)。
- 机会:目标品牌城市白区、客户白区(低份额×高容量),如有价格/时间/结构字段则补充对应洞察。
- 行动计划:头部清单、长尾/白区试点、产品/结构/价格打法、补充字段建议(时间/渠道/价格等)。
快速参考
| 场景 | 关键维度 | 默认洞察 |
|---|---|---|
| 销售/订单 | 城市/渠道/产品 | 城市机会、渠道白区、结构/价格带、增长来源 |
| 投放/线索 | 渠道/地区 | ROI、漏斗转化、渠道效率、预算优化 |
| 招投标/中标 | 地区/机构/品牌 | 竞争格局、集中度、白区机构、策略路径 |
常见错误与修正
- 过学术:出现显著性检验/回归模型 → 改为业务指标与对比口径。
- 图表硬凑:没有洞察也画图 → 只保留能支撑结论的图表。
- 数据缺失即停:缺时间/价格就不输出 → 改为结构/覆盖/机会洞察并说明缺口。
- 结论过简:只给一句话 → 按“现状-洞察-策略-风险”补全。
理性化与纠偏
| 借口 | 纠偏 |
|---|---|
| “数据不全,先不输出” | 先给可替代洞察,并明确缺口与补充建议。 |
| “需要统计检验才可靠” | 用业务口径对比与结构差异给结论。 |
| “固定输出3张图更稳妥” | 图表数量由洞察决定,宁少勿乱。 |
| “结论页一句话即可” | 必须包含现状、洞察、策略、风险四段。 |
红旗清单(出现即纠正)
- 使用学术/模型术语替代业务语言
- 固定图表数量或模板化结论
- 因字段缺失直接停止输出
- 结论缺少策略或风险
示例(Python)
# 根据字段可用性选择洞察与图表(示意)
fields = {"日期", "城市", "渠道", "产品", "数量", "金额"}
insights = []
charts = []
if "城市" in fields and "数量" in fields:
insights.append("城市机会与白区")
charts.append("城市份额条形图/白区散点")
if "渠道" in fields and "金额" in fields:
insights.append("渠道效率与预算建议")
charts.append("渠道ROI条形图")
if "日期" in fields:
insights.append("增长来源与趋势")
charts.append("时间趋势折线")
report_sections = ["现状解读", "洞察体现", "未来策略", "风险分析"]
资源
- 代码:
src/main.py(管线)、src/data_analyzer.py(预处理/分析)、src/chart_generator.py(图表)、src/infographic_generator.py、src/screenshot_generator.py。 - 参考:
references/playbook.md(SOP/字段映射/降噪要点)。 - 示例结构:
examples/(示例输入与报告形态参考)。