skills/skills.netease.im/questionnaire-cross-analysis

questionnaire-cross-analysis

SKILL.md

问卷交叉分析工具

根据问卷数据和datamap设计文件,生成交叉分析Excel报告。

功能特点

  • 支持单选题、多选题、矩阵题(含量表题)、数值填空题的交叉分析
  • 自动处理逻辑跳转题目的base计算(按实际答题人数计算百分比)
  • 生成四列TOC目录(题目、题型、逻辑设置、base)
  • TOC题目带超链接,可跳转到对应表格范围
  • 每道题带"Back to TOC"返回链接
  • 0值用灰色显示,便于识别
  • 支持合计行和列n(base)行

使用方法

命令行调用

python scripts/cross_analysis.py <数据文件.csv> <datamap文件.xlsx> <交叉变量> <输出文件.xlsx>

参数说明

参数 说明 示例
数据文件.csv 问卷答题数据(CSV格式) survey_123.csv
datamap文件.xlsx 问卷设计文档(Excel格式) datamap.xlsx
交叉变量 用于交叉的变量题号 G5(性别)
输出文件.xlsx 生成的Excel报告路径 output.xlsx

示例

python scripts/cross_analysis.py survey.csv datamap.xlsx G5 性别交叉分析.xlsx

输入文件要求

数据文件(CSV)

  • 标准问卷导出格式
  • 每列对应一道题或一个选项(多选题)
  • 包含交叉变量列(如G5_您的性别)
  • 列名格式:题号_问题文本(如G6_您的年龄)

datamap文件(Excel)

  • 问卷设计文档
  • 必须包含列:题目序号、子问题/选项序号、问题及选项、题型、值变量、逻辑设置
  • 题型包括:单选题、多选题、矩阵单选题、矩形量表题、填空题等

输出报告格式

TOC 目录页

  • 题目:带超链接,点击跳转到概率分布sheet对应题目范围
  • 题型:从datamap检索(单选题/多选题/填空题/矩形量表题等)
  • 逻辑设置:从datamap检索(关联设置/互斥逻辑设置等)
  • base:各题实际答题人数(合计列的列n值)

Banner Tables-概率分布

  • 每道题一个表格块
  • 格式:选项 × 交叉变量类别 × 合计
  • 显示列百分比(基于实际答题人数)
  • 包含合计行(100%)和列n行(实际答题人数)
  • 包含"Back to TOC"返回链接

支持的题型

题型 处理方式
单选题 选项文本匹配,计算各选项占比
多选题 每个选项单独计算选择率
矩阵单选题 子题-选项组合,分别计算
矩形量表题 子题名称-选项值格式(如"硬件配置 - 3")
数值填空题 统计各数值的分布(如年龄)
文本填空题 自动跳过

特殊处理

逻辑跳转题目

  • 自动识别实际答题人数(非总样本数)
  • 百分比基于实际答题人数计算
  • 列n行显示实际答题人数

矩阵/量表题

  • 格式:子题名称 - 选项值
  • 显示所有选项(包括百分比为0的)
  • 支持1-10分量表等特殊格式

数值填空题

  • 自动识别数值类型(int64/float64)
  • 统计各唯一值的分布
  • 显示所有数值(包括0值的)

注意事项

  1. 确保datamap中的选项文本与CSV中的列名匹配
  2. 多选题的CSV列名格式应为:题号_问题:选项
  3. 交叉变量必须在CSV和datamap中都存在
  4. 输出Excel文件会被覆盖,请注意备份
  5. 选项文本中的特殊字符(如\r)会被保留用于匹配

依赖库

  • pandas
  • openpyxl
  • numpy

安装:

pip install pandas openpyxl numpy
Installs
1
First Seen
Apr 21, 2026