实现效果:使用python将问卷星上导出来的排序题处理成
导入python的excel
经处理后的excel
排序说明:排序最前面给分6,后面依次递减,若选项没有参与排序,则给分0
python代码如下:
import pandas as pd
from openpyxl.reader.excel import load_workbook
# 读取CSV文件
df = pd.read_excel('anti_data.xlsx',sheet_name = 'Sheet1')
dict_list=[]
for value in df['A']:
parts=value.split("→")
v=6 #修改最大值
dic = {"讲座":0, "宣传资料(海报、传单等)":0, "网络视频(反诈宣传片等)":0, "课堂学习":0, "朋友或家人的提醒":0,"自主搜索信息(如阅读新闻、网络文章等)":0}
for key in parts:
dic[key]=v
v-=1
dict_list.append(dic)
# 文件名
file_name = "output.xlsx"#结果保存的表格
try:
# 尝试加载现有的Excel文件
book = load_workbook(file_name)
writer = pd.ExcelWriter(file_name, engine='openpyxl')
writer.book = book
writer.sheets = {ws.title: ws for ws in book.worksheets}
# 读取现有的DataFrame
existing_df = pd.read_excel(file_name)
print("成功读取现有文件内容:")
print(existing_df)
# 将新的字典数据转换为DataFrame并追加到现有DataFrame
new_df = pd.DataFrame(dict_list)
combined_df = pd.concat([existing_df, new_df], ignore_index=True)
# 将合并后的DataFrame写回Excel文件
combined_df.to_excel(writer, index=False, sheet_name='Sheet1')
except FileNotFoundError:
# 如果文件不存在,则创建一个新的DataFrame并写入Excel文件
df = pd.DataFrame(dict_list)
writer = pd.ExcelWriter(file_name, engine='openpyxl')
df.to_excel(writer, index=False, sheet_name='Sheet1')
print("文件不存在,已创建新文件并写入数据。")
except Exception as e:
print(f"读取文件时发生错误:{e}")
finally:
if 'writer' in locals():
writer.save()
writer.close()
print("数据已成功导出到Excel文件中!")
注意修改相对应的名称。