【Python】实战:生成无关联单选问卷 csv《精神状态评估表》

news2024/12/26 14:12:13

目录

一、适用场景

二、业务需求

三、Python 文件

(1)创建文件

(2)代码示例

四、csv 文件



一、适用场景

实战场景:

  • 问卷全部为单选题
  • 问卷问题全部为必填
  • 问题之间无关联关系
  • 每个问题的答案分数不同
  • 根据问卷全部问题得分生成总分数
  • 根据问卷总分数生成对应判断文案结果
  • 生成 csv 文件表格需要设置固定表头
  • 表格内容需要根据总分从小到大排列


二、业务需求

精神状态评估表

认知功能

口答面试测验

“我说三样东西,请重复一遍,并记住,一会儿会问您”:苹果、手表、国旗

(1) 画钟测验:“请您在这儿画一个圆形的时钟,在时钟上标出 10 点 45 分”

(2) 回忆词语:“现在请您告诉我,刚才我要您记住的三样东西是什么?”

答:_______、________、________(不必按顺序)

评分

□分

0 分:画钟正确(画出一个闭锁圆,指针位置准确),且能回忆出 2-3 个词

1 分:画钟错误(画的圆不闭锁,或指针位置不准确),或只回忆出 0-1 个词

2 分:已确诊为认知障碍,如老年痴呆

攻击行为

□分

0 分:无身体攻击行为(如打/踢/推/咬/抓/摔东西)和语言攻击行为(如骂人、语言威胁、尖叫)

1 分:每月有几次身体攻击行为,或每周有几次语言攻击行为

2 分:每周有几次身体攻击行为,或每日有语言攻击行为

抑郁症状

□分

0 分:无

1 分:情绪低落、不爱说话、不爱梳洗、不爱活动、表情淡漠

2 分:有自杀念头或自杀行为、自伤行为

精神状态总分

□分

上述 3 个项目得分之和

精神状态分级

□级

0 能力完好:总分为 0 分

1 轻度受损:总分为 1 分

2 中度受损:总分 2-3 分

3 重度受损:总分 4-6 分

精神状态分级标准

分级

分级名称

分级标准

0

能力完好

精神状态总分为 0 分

1

轻度受损

精神状态总分为 1 分

2

中度受损

精神状态总分为 2~3 分

3

重度受损

精神状态总分为 4~6 分



三、Python 文件

(1)创建文件

MentalityForm.py


(2)代码示例

  1. 以下代码使用了 Python 的 itertools 模块中的 product 函数,用于生成 a、b、c 三个列表的笛卡尔积,即所有可能的组合情况。
  2. 然后对于每个组合,计算其总分并根据总分判断精神状态等级,并将结果写入到一个 csv 文件中。其中,精神状态等级根据总分的不同而不同,总分为 0 时为 “能力完好”,总分为 1 时为 “轻度受损”,总分为 2-3 时为 “中度受损”,总分为 4-6 时为 “重度受损”,总分大于 6 时为 “其他等级”。
  3. 最后,使用 with 语句打开 csv 文件,并将结果写入到文件中。
import os
import csv
from itertools import product

# 精神状态评估表
Score_1 = [0, 1, 2]
Score_2 = [0, 1, 2]
Score_3 = [0, 1, 2]

'''
[精神状态评估表问卷问题及答案(得分)]
-- Score_1:问题 1 评分
-- Score_2:问题 2 评分
-- Score_3:问题 3 评分

第 1 题:认知功能()分
a.0   b.1   c.2
-- 口答面试测验
“我说三样东西,请重复一遍,并记住,一会儿会问您”:苹果、手表、国旗
(1) 画钟测验:“请您在这儿画一个圆形的时钟,在时钟上标出 10 点 45 分”
(2) 回忆词语:“现在请您告诉我,刚才我要您记住的三样东西是什么?” (不必按顺序)
-- 评分标准
0 分:画钟正确(画出一个闭锁圆,指针位置准确),且能回忆出 2-3 个词
1 分:画钟错误(画的圆不闭锁,或指针位置不准确),或只回忆出 0-1 个词
2 分:已确诊为认知障碍,如老年痴呆

第 2 题:攻击行为()分
a.0   b.1   c.2
-- 评分标准
0 分:无身体攻击行为(如打/踢/推/咬/抓/摔东西)和语言攻击行为(如骂人、语言威胁、尖叫)
1 分:每月有几次身体攻击行为,或每周有几次语言攻击行为
2 分:每周有几次身体攻击行为,或每日有语言攻击行为

第 3 题:抑郁症状()分
a.0   b.1   c.2
-- 评分标准
0 分:无
1 分:情绪低落、不爱说话、不爱梳洗、不爱活动、表情淡漠
2 分:有自杀念头或自杀行为、自伤行为
'''

'''
[精神状态总分]
-- 评分标准:以上 3 个问题评分之和
'''

'''
[精神状态分级标准]
-- 等级标准:根据精神状态总分分级
0 能力完好:总分 0 分
1 轻度受损:总分 1 分
2 中度受损:总分 2 - 3 分
3 重度受损:总分 4 - 6 分
'''

# 配置文件:配置csv文件表格基本参数
# 文件路径和文件名称
filename = r'E:\ScoreGradeForm\CSVFiles\精神状态评估表.csv'
# 表头
csvheader = ['精神状态分级', '精神状态总分', '问题 1 评分[认知功能]', '问题 2 评分[攻击行为]', '问题 3 评分[抑郁症状]']

# 删除文件:检查是否已存在该csv文件,如已存在则先删除
if os.path.exists(filename):
    os.remove(filename)

# 新建文件:生成csv文件,表格内容未排序
with open(filename, 'a+', encoding='utf-8-sig', newline='') as csvfile_0:
    # 生成表头
    header = csvheader
    writer = csv.writer(csvfile_0)
    writer.writerow(header)
    # 生成表格内容
    for scoreGroup in product(Score_1, Score_2, Score_3):
        if sum(scoreGroup) == 0:
            grade = '能力完好'
        elif sum(scoreGroup) == 1:
            grade = '轻度受损'
        elif 2 <= sum(scoreGroup) <= 3:
            grade = '中度受损'
        elif 4 <= sum(scoreGroup) <= 6:
            grade = '重度受损'
        else:
            grade = '其他等级'
        writer.writerow([grade, sum(scoreGroup), scoreGroup[0], scoreGroup[1], scoreGroup[2]])

# 编辑文件:将已存在的csv文件进行调整,按表格第2列从小到大排序内容
with open(filename, 'r', encoding='utf-8-sig') as csvfile_1:
    rows = list(csv.reader(csvfile_1))
    rows[1:] = sorted(rows[1:], key=lambda x: int(x[1]))
    with open(filename, 'w', encoding='utf-8-sig', newline='') as csvfile_2:
        writer = csv.writer(csvfile_2)
        writer.writerows(rows)



四、csv 文件

生成如下结果表格: 

精神状态分级精神状态总分问题 1 评分[认知功能]问题 2 评分[攻击行为]问题 3 评分[抑郁症状]
能力完好0000
轻度受损1001
轻度受损1010
轻度受损1100
中度受损2002
中度受损2011
中度受损2020
中度受损2101
中度受损2110
中度受损2200
中度受损3012
中度受损3021
中度受损3102
中度受损3111
中度受损3120
中度受损3201
中度受损3210
重度受损4022
重度受损4112
重度受损4121
重度受损4202
重度受损4211
重度受损4220
重度受损5122
重度受损5212
重度受损5221
重度受损6222

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/439913.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用pandas和seaborn绘图

使用pandas和seaborn绘图 matplotlib实际上是一种比较低级的工具。要绘制一张图表&#xff0c;你组装一些基本组件就行&#xff1a;数据展示 &#xff08;即图表类型&#xff1a;线型图、柱状图、盒形图、散布图、等值线图等&#xff09;、图例、标题、刻度标签以及其他注解型…

【远程开发】VSCode使用Remote SSH远程连接Linux服务器

文章目录 前言视频教程1、安装OpenSSH2、vscode配置ssh3. 局域网测试连接远程服务器4. 公网远程连接4.1 ubuntu安装cpolar4.2 创建隧道映射4.3 测试公网远程连接 5. 配置固定TCP端口地址5.1 保留一个固定TCP端口地址5.2 配置固定TCP端口地址5.3 测试固定公网地址远程 转发自CSD…

【Unity】创建一个自己的可交互AR安卓程序

目录 1 创建一个AR场景2 配置AR Camera为前置摄像头3 配置打包场景4 下载官方提供的InteractiveFaceFilterAssets资源5 配置AR Face Manager6 创建眼镜预制件7 设置AR面部追踪8 测试效果8.1 在Unity中测试8.2 在安卓设备上测试 9 在该AR场景的基础上添加自己的想法9.1 改变眼镜…

【Java|golang】1042. 不邻接植花---邻接表着色

有 n 个花园&#xff0c;按从 1 到 n 标记。另有数组 paths &#xff0c;其中 paths[i] [xi, yi] 描述了花园 xi 到花园 yi 的双向路径。在每个花园中&#xff0c;你打算种下四种花之一。 另外&#xff0c;所有花园 最多 有 3 条路径可以进入或离开. 你需要为每个花园选择一…

C++用户信息管理服务 Thrift框架 Mysql数据落地 Redis数据缓存 Kafka 消息队列 总结 附主要源码

不知不觉入职已经一个月了&#xff0c;近期提交了考核2&#xff0c;要求如下&#xff1a; 1、编写一个管理用户信息的服务&#xff0c;通过thrift的远程过程调用实现用户信息管理功能 2、用户信息至少包括 唯一ID、用户名、性别、年龄、手机号、邮箱地址、个人描述 3、提供创建…

PHP+Vue+java导师学生双选系统设计与实现springnboot+pyton

为了直观显示系统的功能&#xff0c;运用用例图这样的工具显示分析的结果。分析的管理员功能如下。管理员管理学员&#xff0c;导师&#xff0c;管理项目信息&#xff0c;管理项目提交&#xff0c;管理指导项目信息。运行环境:phpstudy/wamp/xammp等 卓越导师双选系统根据调研&…

GCC 常用命令

GCC 编译过程 一个 C/C文件要经过预处理(preprocessing)、编译(compilation)、汇编(assembly)和链接(linking) 等 4 步才能变成可执行文件 &#xff08;1&#xff09; 预处理 C/C源文件中&#xff0c;以“#”开头的命令被称为预处理命令&#xff0c;如包含命令“#include”、…

系统集成项目管理工程师案例分析考点汇总(沟通/干系人、风险、合同等)

沟通及干系人管理常见考点1. 沟通管理计划的内容2. 项目绩效报告的主要内容3. 沟通中容易出现的问题4. 如何采取有效措施改进沟通5. 如何召开有效的会议 合同管理常见考点1. 合同签订时应注意的内容及条款2. 合同管理常见的问题3. 合同管理问题的应对措施 采购管理常见考点1. 采…

IntelliJ 上 Azure Event Hubs 全新支持来了!

大家好&#xff0c;欢迎来到 Java on Azure Tooling 的3月更新。在这次更新中&#xff0c;我们将介绍 Azure Event Hubs 支持、Azure Functions 的模板增强&#xff0c;以及在 IntelliJ IDEA 中部署 Azure Spring Apps 时的日志流改进。要使用这些新功能&#xff0c;请下载并安…

使用docker搭建Milvus向量数据库

Milvus向量数据库是什么&#xff1f; 官网是这样说的&#xff1a; Milvus创建于2019年&#xff0c;目标单一&#xff1a;存储、索引和管理由深度神经网络和其他机器学习&#xff08;ML&#xff09;模型生成的大量嵌入向量。 作为一个专门用于处理输入向量查询的数据库&#…

操作系统原理 —— 什么是系统调用?(五)

什么是系统调用&#xff1f; 有什么用作用&#xff1f; 我们想想怎么是系统调用呢&#xff1f; 系统调用 是操作系统提供给应用程序(程序员)使用的接口&#xff0c;可以理解为一种可供应用程序调用的特殊函数&#xff0c;应用程序可以发出系统调用请求来获得操作系统的服务。…

编译原理复习(2023.4.25考试版本)

本次复习采用的是这本书&#xff0c;如有书写不当的地方&#xff0c;欢迎批评指正&#xff01; 第一章 第二章 符号串的运算 相等&#xff1a;两个符号串一模一样的 长度&#xff1a;数他有几个就行了 连接&#xff1a;跟在后面直接写就行了 符号传串的逆&#xff1a;在符…

详解UDP协议与实现UDP版本字典翻译客户端与服务器

文章目录 前言1. UDP协议介绍2.UDP Socket的介绍3. UDP版本字典翻译服务器4. UDP版本字典翻译客户端 前言 UDP协议也是传输层的一种协议&#xff0c;上篇文章我们介绍了TCP协议可以参考我的另一篇博客详解TCP协议以及实现TCP版本的字典翻译服务器客户端&#xff0c;以下来介绍…

【k8s】Wordpress(PHP+nginx+mysql)迁移到k8s

一、迁移思路&#xff1a; 1、制作服务镜像; 1.1 挑选合适的基础镜像; 1.2 准备代码相关的文件; 1.3 通过dockerfile构建镜像;2、制作Kubernetes服务&#xff0c;并完成调度; 2.1确定服务运行的模式&#xff08;内部运行or 对外提供); 2.2确定服务所使用的控制器; 2.3服务是否…

【邀请函】第四届宁德国际新能源电池与智造技术产业大会(4月26 宁德)| 达索系统百世慧®

未来5-10年&#xff0c;新能源电池行业将呈现“一大支柱、两大应用场景、多元化技术线路”的发展特征。动力锂电池仍将主导新能源电池产业&#xff0c;并加速乘用场景落地。随着技术的日趋成熟&#xff0c;量产后成本下降&#xff0c;优势逐步凸显。 但随着技术迭代&#xff0…

Maya 贴图链接检测重链打包插件tjh_lost_textures_finder 1.3.3

一、问题描述&#xff1a; maya在模型材质贴图及渲染制作流程中&#xff0c;经常会遇到工程文件路径更改后&#xff0c;图片链接失效的问题&#xff0c;还有就是萌新们不懂规矩&#xff0c;图片路径乱放&#xff0c;而造成的图片打包时巨大工作量&#xff0c;南无阿弥陀佛。此…

vue关于echarts后端返回格式取值方法

在vue中&#xff0c;接口返回如下数据&#xff1a; data: {充电桩: [0, 0, 78], 红外摄像头: [0, 0, 0], 火焰探测器: [0, 1, 0], 烟雾传感器: [0, 1, 1], 限流保护器: [0, 0, 1]}&#xff0c; 其中数组里第一个值应该放在data1&#xff0c;第二个放在data2&#xff0c;第三个…

LCHub:微软Power Apps成为保险行业最受欢迎低代码平台

全球领先的保险行业软件服务商Adacta发布了《保险行业低代码应用情况》报告,深度揭示了保险领域对低代码的应用、市场增长、发展趋势等。 该报告对来自德国、奥地利、瑞士、法国、英国、比利时、荷兰和卢森堡等国家的100名保险行业的高管进行了深度调查。(发送“保险低代码”…

社科院杜兰大学金融管理硕士项目——不要停止奔跑,前方更值得期待

不要停止奔跑&#xff0c;不要回顾来路&#xff0c;来路无可眷恋&#xff0c;唯有前方值得期待。——《马男波杰克》。这段话很适用在职的我们&#xff0c;当我们在职场经过打磨&#xff0c;我们被磨平了棱角&#xff0c;被磨掉了脾气&#xff0c;但我们依然相信前方会更值得我…

安装和部署elasticsearch

文章目录 一、安装elasticsearch1.1 部署单点elasticsearch1.1.1 创建网络1.1.2 安装镜像1.1.3 部署1.1.4 测试 1.2 部署kibana1.2.1 安装镜像1.2.2 部署1.2.3 测试1.2.4 DevTools工具 1.3 安装IK分词器1.3.1 安装ik插件1.3.2 查找数据卷目录1.3.3 上传至容器1.3.4 测试 一、安…