如何处理Excel问卷李克特量表数据以适配plot-likert库绘图要求
李克特量表问卷数据处理及绘图实现
核心实现代码
你只需要按以下步骤操作即可,不需要手动构造字典格式的DataFrame:
import pandas as pd import plot_likert # 读取原始Excel问卷数据 raw_data = pd.read_excel(r'survey.xlsx') # 定义需要处理的问题列索引列表 list_questions = [9, 12, 17] # 筛选指定列,自动保留Excel原表头为列名,得到符合要求的输入数据 likert_data = raw_data.iloc[:, list_questions] # --- 选项适配:根据你的答复语言二选一 --- # 1. 答复为中文时使用自定义中文刻度(顺序从最不同意到最同意) cn_scale = [ "非常不同意", "大部分不同意", "中立", "大部分同意", "非常同意" ] # 2. 答复为英文时直接使用库自带刻度 # scale = plot_likert.scales.agree # 生成李克特图 plot_likert.plot_likert(likert_data, cn_scale, plot_percentage=True)
常见疑问解答
- 格式转换问题:通过
iloc筛选指定列得到的likert_data完全符合plot_likert的输入要求,每列对应一个李克特问题,每行对应一份问卷答复,无需额外转换格式。 - 问题名替换问题:
iloc筛选列时会自动继承Excel表格的表头内容作为DataFrame的列名,绘图时会直接将这些实际问题内容作为纵轴标签,不需要手动替换Q1/Q2这类占位符。
可选优化
如果Excel原表头太长导致绘图显示不全,可以手动修改列名简化显示:
# 按列顺序替换为你需要的问题名称 likert_data.columns = ["电影观感好", "音效体验佳", "票价性价比高"]
注意:自定义刻度时必须严格按照从最不同意到最同意的顺序排列,否则绘图结果会出现排序错误
内容的提问来源于stack exchange,提问作者kloop
相关产品推荐
相关产品推荐

