功能
本脚本主要完成以下功能:
- 读取指定的Excel文件。
- 从Excel文件中提取问题和答案选项。
- 统计每个问题的答案选项分布。
- 按类别细分每个答案选项的计数。
- 将统计结果输出到JSON文件。
使用方法
要使用该脚本,用户需要提供以下信息:
- Excel文件的路径。
- 期望输出的JSON文件的路径。
脚本将自动执行统计操作,并将结果保存到指定的JSON文件中。
示例代码
import pandas as pd
import jsondef count_answers_and_categories(file_path, output_json_file):# 读取Excel文件df = pd.read_excel(file_path, engine='openpyxl')# 获取问题列的列名questions = df.iloc[0, 3:-1].index.tolist()# 初始化一个字典来存储统计结果result = {}# 职务类别列表categories = ["类别一", "类别二", "类别三"]# 答案选项列表answers = ["选项A", "选项B", "选项C", "选项D", "选项E"]# 遍历每个问题for question in questions:# 初始化答案选项的计数和类别计数answer_counts = {answer: 0 for answer in answers}answer_category_counts = {answer: {category: 0 for category in categories} for answer in answers}# 遍历DataFrame的行(从第二行开始)for index, row in df.iloc[1:].iterrows():answer_option = row[question]category_option = row[1]# 确保答案选项和类别都在列表中if answer_option in answers and category_option in categories:answer_counts[answer_option] += 1answer_category_counts[answer_option][category_option] += 1# 将统计结果添加到结果字典中result[question] = {'answer_counts': answer_counts,'answer_category_counts': answer_category_counts}# 保存结果到JSON文件with open(output_json_file, 'w', encoding="utf-8") as json_file:json.dump(result, json_file, ensure_ascii=False, indent=4)# 示例文件路径
file_path = './example.xlsx'
output_json_file = './example_answers_and_categories.json'# 调用函数
count_answers_and_categories(file_path, output_json_file)
JSON输出示例
输出的JSON文件将包含每个问题的统计信息,例如:
{"问题1": {"answer_counts": {"选项A": 10,"选项B": 15,"选项C": 5,"选项D": 2,"选项E": 0},"answer_category_counts": {"选项A": {"类别一": 3,"类别二": 4,"类别三": 3},"选项B": {"类别一": 5,"类别二": 7,"类别三": 3},// ... 更多答案选项和类别计数}},// ... 更多问题的统计信息
}
结论
通过这个脚本,我们可以快速地从Excel文件中提取和统计答案选项及职务类别的分布情况,并将结果以JSON格式保存,便于进一步的分析和处理。
上述代码和文档中的文件路径和问题列表是示例性的,需要根据实际情况进行调整。在运行脚本之前,请确保您的环境中已安装了 pandas
和 openpyxl
库。
水平有限,有问题随时交流;