【发布时间】:2022-11-03 23:18:54
【问题描述】:
我有一个如下的excel电子表格:
data = pd.read_excel(r'survey.xlsx')
每一行都是对调查的回应,列是李克特量表中的不同问题(强烈同意、大部分同意、中立、大部分不同意、强烈不同意)。
假设对于给定的问题,excel 电子表格中的调查信息可以打印为
print(data.iloc[:,9])
这使
0 Mostly Agree
1 Mostly Agree
2 Mostly Disagree
3 Neither Agree Nor Disagree
4 Strongly Agree
我想使用这个包:
https://github.com/nmalkin/plot-likert
(或任何其他李克特量表包)
为所有调查问题打印李克特图(如 repos 所示)。
我对似乎可以完成工作的这段代码感到特别困惑:
# Make sure you have some data
import pandas as pd
data = pd.DataFrame({'Q1': {0: 'Strongly disagree', 1: 'Agree', ...},
'Q2': {0: 'Disagree', 1: 'Strongly agree', ...}})
# Now plot it!
import plot_likert
plot_likert.plot_likert(data, plot_likert.scales.agree, plot_percentage=True);
具体来说,如何将电子表格中的数据(我也使用 Pandas)复制到“DataFrame”中。我也不确定如何将数据框中的“Q1”、“Q2”更改为实际问题,从电子表格的列标题中获取。
如果可以提供任何帮助,我将不胜感激。
我的问题是:给定上述格式的电子表格(其中几列由问题组成,例如,列 J 询问“电影很有趣”,每行的回复都带有文本“非常同意”等)我如何将其重新格式化为一个数据框,例如(我可以在列表 list_questions = [9, 12, 17] 等中输入展开中列的索引):
data = pd.DataFrame({'Q1': {0: 'Strongly disagree', 1: 'Agree', ...},
'Q2': {0: 'Disagree', 1: 'Strongly agree', ...}})
【问题讨论】:
-
你的问题究竟是什么?最后的那一点让您看起来像是想在数据框中打开一个
xls,但在顶部您表明您已经在这样做了。plot_likert部分似乎与您的问题无关。 -
我试图加强我的问题......我在电子表格中的数据和李克特量表的 DataFrame 对象之间进行转换时遇到了问题。
-
我认为你需要进一步提高它。据我所知,李克特量表与你的问题无关,所以去掉所有这些,举例说明你的数据是什么样的,只关注你正在努力解决的问题——把它变成一个合适的数据框。
标签: python excel pandas likert