Back to skills
SKILL.md
Tencent Survey Analysis
ASecurity腾讯问卷——回收后的数据处理:导出 CSV 清洗、频数占比、量表均值、交叉表、开放题关键词,再写成调研报告。当用户说「腾讯问卷数据怎么分析」「问卷结果出报告」「做个交叉表」时使用。
- 2 stars
- 0 votes
- 0 copies
- 0 views
- Added October 13, 2026
Security analysis
100/100Pro scans all 5 files and shows the line behind each finding
npx -y skills add po-et/workbuddy-skills --skill tencent-survey-analysis --agent claude-codeAre you the author of Tencent Survey Analysis?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/po-et-tencent-survey-analysis)---
name: tencent-survey-analysis
description: "腾讯问卷——回收后的数据处理:导出 CSV 清洗、频数占比、量表均值、交叉表、开放题关键词,再写成调研报告。当用户说「腾讯问卷数据怎么分析」「问卷结果出报告」「做个交叉表」时使用。"
author: Captain
version: 0.1.0
display_name: "腾讯问卷"
display_name_en: "Tencent Survey Analysis"
description_zh: "用腾讯问卷做调研后,把导出数据(CSV,或 Excel 另存的 CSV)清洗、统计并写成结论:Python 标准库脚本自动识别单选、多选、量表、开放题(认不出的列列出来请你确认),输出频数占比、量表均值、交叉表、开放题关键词粗筛;附发布前自查、样本量与回收率写法、报告模板。"
description_en: "Clean, tabulate and write up survey data exported from Tencent Survey: a standard-library script that detects single-choice, multi-choice, scale and open questions and outputs frequencies, scale means, cross-tabs and rough keywords, plus sample-size wording and a write-up template."
tags:
- "腾讯问卷"
- "问卷分析"
- "问卷数据"
- "调研报告"
- "交叉表"
- "满意度"
- "NPS"
- "survey analysis"
- "Tencent Survey"
- "CSV"
examples_zh:
- "腾讯问卷导出的数据帮我分析一下,出个调研报告"
- "问卷里不同年级的满意度,帮我做个交叉表"
- "问卷开放题关键词怎么提炼,几百条回答看不过来"
examples_en:
- "Analyze the CSV exported from Tencent Survey and draft a report"
- "Make a cross-tab of grade by satisfaction from my survey data"
---
# 腾讯问卷
定位一句话:**回收之后的事——导出、清洗、统计、写结论;每个数字带 n,每个推断有边界。**
与已有技能「问卷设计」的分工:题目怎么问、选项怎么设计交给「问卷设计」;本技能侧重**回收后的数据处理与报告**,只附一份「为了之后好分析」的发布前自查。
## 何时使用
- 「腾讯问卷收完了,导出的数据帮我分析」
- 「做个身份 × 满意度的交叉表」
- 「开放题几百条回答,帮我找找大家在说什么」
- 「报告里回收率、样本量怎么写才不出错」
- 「问卷马上要发了,帮我看看回收后好不好分析」
不适用(遇到时这样处理):
- 设计题目、选项、问卷结构:交给「问卷设计」。
- 显著性检验、回归、因子分析等推断统计:说明本技能只做描述统计,建议用专业统计软件或请数据分析同事。
- 腾讯问卷本身怎么发布、怎么设置权限:指向腾讯问卷帮助中心,章节以帮助中心为准。
## 流程
1. **发布前自查**(可选):题号唯一、量表方向一致、多选标明、分群变量要问、测试答卷导出后先跑一遍脚本。8 条清单见 [references/prepublish-and-cleaning.md](references/prepublish-and-cleaning.md)。
2. **导出**(以腾讯问卷当前界面为准):在问卷的数据或统计相关页面找下载原始数据的入口;导出 Excel 的,另存为「CSV UTF-8」。官方说明见腾讯问卷帮助中心中与「数据下载」「导出」相关的章节。
3. **清洗 + 统计**:跑脚本,先看「列识别结果」和「需要你确认的列」,改对类型后再看结果。
4. **解读**:按解读规则把数字变成结论句;开放题人工归纳主题。
5. **写报告**:按「输出契约」的骨架写,附清洗记录与脚本输出。
**第 3 步 脚本**(路径相对本技能目录):
```bash
python3 scripts/survey_analyze.py data.csv
python3 scripts/survey_analyze.py data.csv --min-seconds 60 --invited 120 --cross Q1 Q5 --cross Q2 Q4
python3 scripts/survey_analyze.py data.csv --type "Q10 年龄=numeric" --format json -o result.json
```
列的自动识别(导出形态以腾讯问卷当前版本为准,认不出的列不会硬算):
| 类型 | 常见列形态 | 输出 |
|---|---|---|
| 单选 | 一列,取值是有限几个选项;只有 0/1 的列按选中 / 未选中 | 频数、占比(分母 = 该题作答人数) |
| 多选 | 一列里用 ┋ \| ; ; 、 , 分隔;或「题干-选项」相邻多列,单元格 0/1、选中、√ 或选项文字 | 每个选项的人数与占比(合计可超过 100%)、人均选几项、「其他」填写内容 |
| 量表 | 0–10 的整数;或「非常不满意 … 非常满意」等标签(按 1–5 换算) | 均值、标准差、中位数、前两档占比、完整分布;0–10 且题干含「推荐」时给 NPS |
| 开放题 | 长短不一的文字 | 2–4 字片段按提及人数排序的关键词粗筛、前 3 条示例回答 |
| 元信息 | 序号、提交时间、答题时长、IP 等 | 不统计 |
| 待确认 | 年龄、金额等数值,或判断不了的列 | 列进「需要你确认的列」,给出 `--type` 写法 |
清洗(记进报告):默认去掉完全相同的行;`--dedupe-by` 按身份去重;`--min-seconds` 去掉答题过快(阈值要有依据,没有就不过滤);直线作答默认只标记,`--drop-straightline` 才删除。编码自动尝试 UTF-8 与 GB18030,分隔符自动识别;`--cross` 的列名可以只写开头几个字(如 Q1),唯一匹配即可。同样的输入得到同样的输出。
**第 4 步 解读规则**(细则、结论句写法见 [references/writeup-template.md](references/writeup-template.md)):
- 每个百分比带 n,说清分母;多选占比不能相加。
- 量表同时看均值、前两档和最低两档;均值高低没有通用标准,和上次调研、和分群比。
- 交叉表看行百分比;行 n<5 不下结论,有效样本 n<30 只报人数;相关不等于因果。
- 开放题:通读全部回答,归纳 5–8 个主题,统计提及人数,挑代表性原话;关键词只是线索。
**样本量与回收率的说明方式**:
- 回收率 = 回收份数 ÷ 发放份数,只有定向发放才有;公开链接投放写「无法统计发放数,共回收 X 份」,不要编回收率。
- 有效率 = 有效份数 ÷ 回收份数,并写清剔除规则。
- 抽样误差只对随机抽样成立(p=50%、n=400 时约 ±4.9 个百分点);便利样本写「结论仅代表本次受访者」。
## 信息不全或出错时
| 情况 | 怎么处理 | 对用户说的话(模板) |
|---|---|---|
| 缺关键信息 | 只问 3 个:定向发放还是公开链接(发了多少份)、「答题过快」有没有依据、最想比较哪两类人;其余按默认(不算回收率、不过滤用时),报告里标 [待确认] | 「先确认三件事:发了多少份、多快算乱填、想比较哪两类人。」 |
| 输入不对:发来 .xlsx 或乱码 CSV | 脚本会提示;请用户另存为 CSV UTF-8,或加 `--encoding gb18030` | 「这是 Excel 文件,请另存为『CSV UTF-8』再发我。」 |
| 数据自相矛盾(「从未使用」却给功能打分) | 列出矛盾的答卷数,给两种处理:剔除这些答卷,或只在相关题里排除 | 「有 4 份答卷自称没用过却给功能打了分。①整份剔除;②只在功能题里排除。选哪种?」 |
| 有列识别不了 | 看「需要你确认的列」,按提示用 `--type` 指定后重跑 | 「『Q10 年龄』是数值,我按数值统计均值和中位数,可以吗?」 |
| 时间紧,只要最小版 | 最小版 = 样本说明一段 + 3 条核心结论(带 n)+ 1 张最关键的交叉表 | 「先给最小版:样本说明、三条结论、一张交叉表。」 |
| 超出范围:要显著性检验、因果结论 | 说明只做描述统计,建议专业人员;结论写「相关」不写「导致」 | 「这需要推断统计,我先把描述结果和局限写清楚。」 |
| 用户坚持删掉不利答卷或改数 | 不做;可以按事先写明的清洗规则剔除,并在报告里公开规则 | 「只能按写明的规则剔除,不能挑结果删;规则会写进报告。」 |
脚本退出码:
| 退出码 / 报错 | 原因 | 修正办法 |
|---|---|---|
| 0 | 成功 | 先看「需要你确认的列」 |
| 1「找不到列 / 找不到唯一的列」 | 列名写错或开头几个字不唯一 | 按提示写完整列名,或多写几个字 |
| 1「--type 类型只能是…」 | 类型写错 | 用 single / multi / scale / open / numeric / meta / skip |
| 1「交叉表只支持单选 / 多选 / 量表」 | 用了开放题或数值列 | 换列,或先用 `--type` 改类型 |
| 1「没找到答题时长列」 | 用了 `--min-seconds` 但没有时长列 | `--duration-col 列名`,或去掉该参数 |
| 2「这看起来是 Excel 文件 / 无法识别编码 / 写文件失败」 | 文件格式、编码或输出目录问题 | 另存为 CSV UTF-8;`--encoding gb18030`;换输出目录 |
| 130 | Ctrl+C 中断 | 重跑即可 |
## 输出契约
报告按这个顺序,缺哪块写「无」或 [待补],不跳号:
1. 标题 + 一行信息(时间、对象、有效样本 n、撰写人、日期)
2. 核心结论(≤3 条,每条带数据和 n)
3. 调研概况(目的、对象与渠道、时间、发放 / 回收 / 有效、回收率与有效率、清洗规则)
4. 主要发现(结论句 + 数据 + 图表建议)
5. 分群差异(交叉表)
6. 开放题反馈(主题、提及人数、代表性原话)
7. 建议与下一步
8. 局限
9. 附录(列识别结果、清洗记录、各题频数表)
完整模板见 [references/writeup-template.md](references/writeup-template.md)。占位符:用户没给的写 [待补];推断的写 [待确认];解读里的猜测写「推测」。
交付前自检(逐条判是/否):
- [ ] 每个百分比都写了 n,多选题注明「合计可超过 100%」。
- [ ] 回收率只在知道发放数时出现;清洗规则写进了概况。
- [ ] 「需要你确认的列」都已处理(改类型或确认跳过)。
- [ ] n<5 的分群没有被单独下结论;结论没有写成因果。
- [ ] 开放题主题是人工归纳的,原话已去掉可识别信息。
- [ ] 报告里所有数字都能在脚本输出里找到。
## 示例
> 示例对话,数据为构造样例。完整过程(数据、两次运行、真实输出、报告节选)见 [examples/satisfaction-survey.md](examples/satisfaction-survey.md)。
**用户**:记账 App 的用户调研收完了,腾讯问卷导出的数据在 survey.csv,帮我分析并写个报告。
**助手**:先确认三件事:①定向发放还是公开链接,发了多少份?②多快算乱填,有依据吗?③想重点比较哪两类人?
**用户**:定向发给 120 位用户;试填正常要 2 分钟以上,1 分钟以内算乱填;想看不同身份的满意度。
**助手**:运行 `python3 scripts/survey_analyze.py survey.csv --min-seconds 60 --invited 120 --cross Q1 Q5 --type "Q10 年龄=numeric"`,清洗后有效 30 份。报告(节选):
```
# 记账 App 用户调研报告
2026-09-20 ~ 2026-09-25|现有用户|有效样本 30|撰写人 [待补]|2026-09-26
## 一、核心结论
1. 整体满意度中等偏上:均值 3.80(1–5 分),66.7% 打 4 分及以上,13.3% 打 2 分,无人打 1 分(n=30)。
2. 「速度」是三个方面中最弱的一项:均值 3.30,前两档仅 40.0%;开放题中「加载」被 3 人提到(n=19)。
3. 最想要的新功能是「数据导出」:回答该题的 27 人中 55.6% 选择。
## 二、调研概况
- 样本:发放 120,回收 33,有效 30;回收率 27.5%,有效率 90.9%
- 清洗规则:去掉完全相同的行 1 份;答题时长低于 60 秒的 2 份(依据:试填正常用时 2 分钟以上);直线作答 2 份仅标记未删除
## 四、分群差异
- 学生的满意度均值(4.11,n=9)高于在职用户(3.73,n=15);「其他」「自由职业」各 3 人,不单独解读。样本较少,差异仅供参考。
## 七、局限
- 回收率 27.5%,愿意作答的用户可能更活跃,结论仅代表本次受访者。
```
## 常见问题(FAQ)
**问卷平台自带统计页,还需要这个吗?** 平台统计页适合看单题分布;清洗记录、交叉表、开放题归纳和一份带 n 与局限的报告,是本技能补的部分。
**导出的是 Excel 怎么办?** 用 Excel 或 WPS 另存为「CSV UTF-8」再跑;脚本读到 Excel 文件会直接提示。
**多选题导出成好几列怎么办?** 相邻、同题干、单元格是 0/1 或选项文字的列,脚本会自动合并成一道多选题;不想合并用 `--no-group`。
**样本只有 30 份,能写报告吗?** 能,但只报人数和占比、写明「仅供参考」,不做推断,分群比较要谨慎。
**满意度均值 3.8 算高还是低?** 没有通用标准;和上一次调研、和不同人群、和你们设定的目标比,并看分布是否两极分化。
**开放题关键词不准?** 关键词是机器粗切的线索,最终以人工通读归纳的主题为准。
**能帮我做显著性检验吗?** 本技能只做描述统计;需要检验时,建议用专业统计软件或请数据分析同事,并把本技能的清洗记录一起交给对方。
**和「问卷设计」有什么区别?** 那个管发布前的题目设计;本技能管回收后的数据处理与报告。
## 常见错误(反模式)
- 只报百分比不报 n → 读者不知道 60% 是 3 人还是 300 人 → 每个百分比都带 n。
- 把多选题各选项占比加起来 → 合计超过 100% 还当成分布 → 说明分母是作答人数。
- 公开链接投放却写回收率 → 数字是编的 → 写「无法统计发放数」。
- 用均值掩盖两极分化 → 3.0 可能是一半 1 分一半 5 分 → 同时报分布。
- 对 n=3 的分群下结论 → 偶然性太大 → n<5 不单独解读。
- 关键词频次直接当结论 → 片段会误切 → 人工归纳主题。
- 测试答卷没删 → 数据被污染 → 发布前记下测试答卷序号,清洗时剔除。
- 把相关写成因果 → 误导决策 → 写「与……相关」,因果要另行验证。
## 边界与不做什么
- 只处理用户提供的导出文件;不登录腾讯问卷账号,不抓取他人的问卷或答卷数据。
- 分析前删除或脱敏姓名、手机号、openid、IP 等个人信息;报告与引用原话里不出现可识别个人的信息。
- 不伪造答卷、不刷问卷、不按「结果好不好看」挑选或删除数据。
- 只做描述统计;推断统计结论交给专业人员。
- 腾讯问卷的界面、导出格式、功能以官方帮助中心与当前界面为准,本技能不编造。
Files in this skill
- SKILL.md
- examples/satisfaction-survey.md
- references/prepublish-and-cleaning.md
- references/writeup-template.md
- scripts/survey_analyze.py
Attribution
Comments
Loading comments…
Newsletter
Get the weekly list of safe new skills, and the ones we pulled.