功能
本脚本主要完成以下功能:
- 读取指定的Excel文件。
- 从Excel文件中提取问题和答案选项。
- 统计每个问题的答案选项分布。
- 按类别细分每个答案选项的计数。
- 将统计结果输出到JSON文件。
使用方法
要使用该脚本,用户需要提供以下信息:
- Excel文件的路径。
- 期望输出的JSON文件的路径。
脚本将自动执行统计操作,并将结果保存到指定的JSON文件中。
示例代码
python
import pandas as pd
import json
def 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] += 1
answer_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文件将包含每个问题的统计信息,例如:
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
库。
水平有限,有问题随时交流;