【Python】实战:生成无关联单选问卷 csv《跌倒风险评估量表》

news/2024/5/20 13:20:32/文章来源:https://blog.csdn.net/qq_39720249/article/details/130333041

目录

一、适用场景

二、业务需求

三、Python 文件

(1)创建文件

(2)代码示例

四、csv 文件



一、适用场景

实战场景:

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


二、业务需求

Morse 跌倒风险评估量表

1. 曾有跌倒记录

□ 分

0 分:无

25 分:有

2. 多于一项医疗诊断

□ 分

0 分:无

15 分:有

3. 步行辅助器

□ 分

0 分:无/长期卧床/轮椅活动

15 分:步行辅助器具/步行需协助

30 分:依靠家具作支持

4. 药物注射

□ 分

0 分:无

20 分:有

5. 步态

□ 分

0 分:正常/长期卧床/轮椅

10 分:身体软弱

20 分:受损

备注:

长期卧床者 —— 不能自助活动,例如:四肢瘫痪、昏迷。

坐轮椅的长者如能自助由轮椅过椅或过床,“步态” 的评分便以他由轮椅过椅或过床的能力/步态来评定。

6. 精神状态

□ 分

0 分:了解自我能力

15 分:自我评估过高或忽略自我能力限制

跌倒风险总分

□ 分

上述 6 项得分之和

跌倒风险分级

□ 级

0 低风险:总分 <25 分

1 中度风险:总分 25-45 分

2 高风险:总分 >45 分

跌倒风险分级标准

分级

分级名称

分级标准

0

低风险

总分<25分

1

中风险

总分25-45分

2

高风险

总分>45分



三、Python 文件

(1)创建文件

MorseFallRiskForm.py

(2)代码示例

以下代码的作用是生成一个跌倒风险评估量表的 csv 文件,其中包括了 6 个问题的评分标准、跌倒风险总分和风险分级标准。具体实现过程如下:

1. 导入所需的模块:os、csv、itertools 的 product 函数。

2. 定义 6 个问题的评分标准,分别为 Score_1 - Score_6。

3. 定义跌倒风险总分和风险分级标准。

4. 配置 csv 文件表格基本参数,包括文件路径和文件名称、表头。

5. 检查是否已存在该 csv 文件,如已存在则先删除。

6. 生成 csv 文件,表格内容未排序。通过 itertools 中的 product 函数生成所有问题的评分组合,根据跌倒风险总分分级标准,将评分组合分为低、中、高三个风险等级,并将结果写入csv 文件中。

7. 将已存在的 csv 文件进行调整,按表格第 2 列从小到大排序内容。首先读取 csv 文件中的所有行,然后使用 sorted 函数按照第 2 列的数值大小进行排序,最后将排序后的结果写回到csv 文件中。

import os
import csv
from itertools import product# 跌倒⻛险评估量表
Score_1 = [0, 25]
Score_2 = [0, 15]
Score_3 = [0, 15, 30]
Score_4 = [0, 20]
Score_5 = [0, 10, 20]
Score_6 = [0, 15]'''
[跌倒⻛险评估量表问卷问题及答案(得分)]
-- Score_1:第 1 题评分
-- Score_2:第 2 题评分
-- Score_3:第 3 题评分
-- Score_4:第 4 题评分
-- Score_5:第 5 题评分
-- Score_6:第 6 题评分第 1 题:曾有跌倒记录()
a.无  
b.有
-- 评分标准
a.0 分
b.25 分第 2 题:多于一项医疗诊断()
a.无  
b.有
-- 评分标准
a.0 分
b.15 分第 3 题:步行辅助器()
a.无/长期卧床/轮椅活动   
b.步行辅助器具/步行需协助   
c.依靠家具作支持
-- 评分标准
a.0 分
b.15 分  
c.30 分第 4 题:药物注射()
a.无  
b.有
-- 评分标准
a.0 分
b.20 分第 5 题:步态()
a.正常/长期卧床/轮椅
b.身体软弱
c.受损
-- 评分标准
a.0 分
b.10 分  
c.20 分
-- 备注
① 长期卧床者 —— 不能自助活动,例如:四肢瘫痪、昏迷。
② 坐轮椅的长者如能自助由轮椅过椅或过床,“步态” 的评分便以他由轮椅过椅或过床的能力/步态来评定。第 6 题:精神状态()
a.了解自我能力  
b.自我评估过高或忽略自我能力限制
-- 评分标准
a.0 分
b.15 分
''''''
[跌倒风险总分]
-- 评分标准:以上 6 个问题评分之和
''''''
[跌倒风险分级标准]
-- 等级标准:根据跌倒风险总分分级
0 低风险:总分 <25 分
1 中风险:总分 25 - 45 分
2 高风险:总分 >45 分
'''# 配置文件:配置csv文件表格基本参数
# 文件路径和文件名称
filename = r'E:\ScoreGradeForm\CSVFiles\跌倒风险评估量表.csv'
# 表头
csvheader = ['跌倒风险分级', '跌倒风险总分', '问题 1 评分[曾有跌倒记录]', '问题 2 评分[多于一项医疗诊断]','问题 3 评分[步行辅助器]', '问题 4 评分[药物注射]', '问题 5 评分[步态]', '问题 6 评分[精神状态]']# 删除文件:检查是否已存在该csv文件,如已存在则先删除
if os.path.exists(filename):os.remove(filename)# 新建文件:生成csv文件,表格内容未排序
with open(filename, 'a+', encoding='utf-8-sig', newline='') as csvfile_0:# 生成表头header = csvheaderwriter = csv.writer(csvfile_0)writer.writerow(header)# 生成表格内容for scoreGroup in product(Score_1, Score_2, Score_3, Score_4, Score_5, Score_6):if sum(scoreGroup) < 25:grade = '低风险'elif 25 <= sum(scoreGroup) <= 45:grade = '中风险'elif sum(scoreGroup) > 45:grade = '高风险'else:grade = '其他等级'writer.writerow([grade, sum(scoreGroup), scoreGroup[0], scoreGroup[1], scoreGroup[2], scoreGroup[3],scoreGroup[4], scoreGroup[5]])# 编辑文件:将已存在的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 评分[步行辅助器]问题 4 评分[药物注射]问题 5 评分[步态]问题 6 评分[精神状态]
低风险0000000
低风险100000100
低风险150000015
低风险150015000
低风险150150000
低风险200000200
低风险200002000
中风险2500001015
中风险2500150100
中风险2501500100
中风险252500000
中风险3000020100
中风险3000150015
中风险300030000
中风险3001500015
中风险3001515000
中风险3500002015
中风险3500020015
中风险3500150200
中风险3500152000
中风险3501500200
中风险3501502000
中风险3525000100
中风险4000020200
中风险40001501015
中风险4000300100
中风险40015001015
中风险40015150100
中风险4025000015
中风险4025015000
中风险4025150000
中风险45000201015
中风险45001520100
中风险4500300015
中风险45015020100
中风险45015150015
中风险4501530000
中风险4525000200
中风险4525002000
高风险50001502015
高风险50001520015
高风险5000300200
高风险5000302000
高风险50015002015
高风险50015020015
高风险50015150200
高风险50015152000
高风险50250001015
高风险50250150100
高风险50251500100
高风险55000202015
高风险55001520200
高风险55003001015
高风险55015020200
高风险550151501015
高风险55015300100
高风险55250020100
高风险55250150015
高风险5525030000
高风险55251500015
高风险55251515000
高风险600015201015
高风险60003020100
高风险600150201015
高风险600151520100
高风险60015300015
高风险60250002015
高风险60250020015
高风险60250150200
高风险60250152000
高风险60251500200
高风险60251502000
高风险65003002015
高风险65003020015
高风险650151502015
高风险650151520015
高风险65015300200
高风险65015302000
高风险65250020200
高风险652501501015
高风险65250300100
高风险652515001015
高风险652515150100
高风险700015202015
高风险70003020200
高风险700150202015
高风险700151520200
高风险700153001015
高风险702500201015
高风险702501520100
高风险70250300015
高风险702515020100
高风险702515150015
高风险70251530000
高风险750030201015
高风险7501515201015
高风险750153020100
高风险752501502015
高风险752501520015
高风险75250300200
高风险75250302000
高风险752515002015
高风险752515020015
高风险752515150200
高风险752515152000
高风险800153002015
高风险800153020015
高风险802500202015
高风险802501520200
高风险802503001015
高风险802515020200
高风险8025151501015
高风险802515300100
高风险850030202015
高风险8501515202015
高风险850153020200
高风险8525015201015
高风险852503020100
高风险8525150201015
高风险8525151520100
高风险852515300015
高风险9001530201015
高风险902503002015
高风险902503020015
高风险9025151502015
高风险9025151520015
高风险902515300200
高风险902515302000
高风险9525015202015
高风险952503020200
高风险9525150202015
高风险9525151520200
高风险9525153001015
高风险10001530202015
高风险10025030201015
高风险100251515201015
高风险10025153020100
高风险10525153002015
高风险10525153020015
高风险11025030202015
高风险110251515202015
高风险11025153020200
高风险115251530201015
高风险125251530202015

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

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ES使用小结

ES使用总结 1.查询es全部索2.根据es索引查询文档3.查看指定索引mapping文件4.默认查询总数10000条5.删除指定索引文档6.删除所有数据包括索引7.設置窗口值8. logstash简单配置Logstash配置&#xff1a;logstash 控制台输出 9. filebenat配置 1.查询es全部索 localhost:9200/_c…

NFS网络文件共享服务

NFS网络文件共享服务 NFS&#xff08;network file system&#xff09;网络文件系统 可以把对方主机资源直接挂载到自己电脑上&#xff0c;比FTP更加方便 明文传输 没有认证机制 安全性很差 只在局域网使用 依赖RPC(远程过程调用&#xff09; 需要安装nfs-utils(提供NFS服务)…

Nacos身份绕过漏洞复现(QVD-2023-6271)

Nacos身份绕过漏洞复现&#xff08;QVD-2023-6271&#xff09; 公司上级预警QVD-2023-6271&#xff0c;领导安排进行排查。 本着知己知彼的原则&#xff0c;我在本地将该漏洞复现出来。 漏洞原理&#xff1a;Nacos 在默认配置下未对 token.secret.key 进行修改&#xff0c;导…

开放式耳机有什么好处,分享几款高畅销的开放式耳机

开放式耳机是一种声音传导方式&#xff0c;主要通过颅骨、骨骼把声波传递到内耳&#xff0c;属于非入耳式的佩戴方式。相比传统入耳式耳机&#xff0c;开放式耳机不会堵塞耳道&#xff0c;使用时可以开放双耳&#xff0c;不影响与他人的正常交流。开放式耳机不会对耳朵产生任何…

短视频app开发:如何实现实时短视频录制功能

简介 在当今的移动互联网时代&#xff0c;短视频app已经成为了人们生活中不可或缺的一部分。短视频app的数量和用户量都在不断增加。如今&#xff0c;越来越多的人开始关注短视频app的开发&#xff0c;尤其是如何实现实时短视频录制功能。本文将分享如何开发短视频app并实现实…

DataStructure--Tree

文章摘录链接 1.树基本概念 计算机数据结构中的树就是对显示中的树的一种抽象&#xff08;倒置现实中的树&#xff09;。 1.1 树 有层次关系N&#xff08;N≥0&#xff09;个节点的有限集合空树&#xff1a; N0 非空树&#xff1a; 有且只有一个根节点1.2 节点 根节点 分…

java: Compilation failed: internal java compiler error

问题描述&#xff1a; 今天学习一个新的框架 Jbolt-v3.0&#xff0c;然后将它通过 IDEA 导入&#xff0c;运行报错&#xff0c;如下显示&#xff1a; 接着我尝试了百度上的解决方案&#xff0c;依然没有解决&#xff0c;遂即记录一下。 原因分析&#xff1a; 出现这种报错的原…

Linux下版本控制器(SVN) -服务器端环境搭建步骤

文章目录 进阶知识-Linux下版本控制器(SVN)4、服务器端环境搭建步骤4.1 安装服务器端程序4.2 验证是否安装成功4.3 创建并配置版本库4.4 配置 SVN对应的服务4.5 启动 SVN服务 本人其他相关文章链接 进阶知识-Linux下版本控制器(SVN) 4、服务器端环境搭建步骤 4.1 安装服务器端…

带你一步步实现代码开发平台——概述、实现模式、整体框架

概述 低代码开发平台是一种开发工具&#xff0c;它允许用户使用图形界面和少量编码来创建应用程序。这种平台的目的是加快应用程序开发速度&#xff0c;减少开发成本和技能门槛。目前&#xff0c;市场上有许多低代码开发平台可供选择&#xff0c;包括Microsoft Power Apps、Ou…

六、Golang的并发

Go语言的并发指的是能让某个函数独立于其他函数运行的能力。当一个函数创建为goroutine时&#xff0c;Go会将其视为一个独立的工作单元。这个单元会被调度到可用的逻辑处理器上执行。 Go语言运行时的调度器是一个复杂的软件&#xff0c;能管理被创建的所有goroutine并为其分配执…

Spring之Bean的配置与实例

Spring之Bean的配置与实例 一、Bean的基础配置1. Bean基础配置【重点】配置说明代码演示运行结果 2. Bean别名配置配置说明代码演示打印结果 3. Bean作用范围配置【重点】配置说明代码演示打印结果 二、Bean的实例化1. Bean是如何创建的2. 实例化Bean的三种方式2.1 构造方法方式…

NewBing 边栏快捷插件没有了!如何解决?如何脱离浏览器使用 New Bing?

作者&#xff1a;明明如月学长&#xff0c; CSDN 博客专家&#xff0c;蚂蚁集团高级 Java 工程师&#xff0c;《性能优化方法论》作者、《解锁大厂思维&#xff1a;剖析《阿里巴巴Java开发手册》》、《再学经典&#xff1a;《EffectiveJava》独家解析》专栏作者。 热门文章推荐…

[世界读书日] 最好的书,都在博雅之中

今天是世界读书日&#xff08;4月23日&#xff09;&#xff0c;还是谈谈读书。 我很少看到有人说读书不好的&#xff0c;但很少看到有人爱读书&#xff0c;也很少看到有人读到了好书。 好书、好读书、读好书&#xff0c;都是很稀缺的。 一、好书的作用 基本上&#xff0c;我们遇…

NFC 学习笔记 5 MFRC522读写器2 NDEF

NDEF简介 NDEF&#xff08;NFC Data Exchange Format&#xff09;是一种标准化的数据格式&#xff0c;用于将数据存储在NFC标签或智能手机中。该格式是NFC论坛定义的&#xff0c;目的是在不同的NFC设备之间交换信息。 NDEF格式可以存储各种类型的数据&#xff0c;例如URL、文本…

参数与非参数检验:理解差异并正确使用

数据科学是一个快速发展的领域&#xff0c;它在很大程度上依赖于统计技术来分析和理解复杂的数据集。这个过程的一个关键部分是假设检验&#xff0c;它有助于确定从样本中获得的结果是否可以推广到总体。 在这篇文章中&#xff0c;我们将探讨参数与非参数检验之间的区别&#…

第3章:select

1.最基本的select语句 select … from…select 字段1&#xff0c;字段2&#xff0c;…from 表名* 表中所有字段&#xff08;列&#xff09; 2.列的别名 字段1 as 别名1字段1 别名1as&#xff1a;alias&#xff08;别名&#xff09;可以省略如果别名有空格使用一对””引起来…

pycharml利用ddddocr和selenium识别验证码并登录

文章目录 1OCR2 ddddocr3使用案例4 常见问题代码详情获得XPATH方法 1OCR OCR (Optical Character Recognition&#xff0c;光学字符识别)&#xff0c;是指电子设备(例如扫描仪或 数码相机)检查纸上打印的字符&#xff0c;通过检测暗、亮的模式确定其形状&#xff0c;然后用字符…

[Platforimio] LVGL +TFT_eSPI实现触摸功能

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; 本人持续分享更多关于电子通信专业内容以及嵌入式和单片机的知识&#xff0c;如果大家喜欢&#xff0c;别忘点个赞加个关注哦&#xff0c;让我们一起共同进步~ &#x…

【LeetCode训练营】反转链表 移除链表元素 详细图解 203,206

&#x1f48c; 博客内容&#xff1a;LeetCode 训练营 &#x1f600; 作  者&#xff1a;陈大大陈 &#x1f680; 个人简介&#xff1a;一个正在努力学技术的准前端&#xff0c;专注基础和实战分享 &#xff0c;欢迎私信&#xff01; &#x1f496; 欢迎大家&#xff1a;这…

谁在成为产业经济发展的推车人?

区域发展的新蓝图中&#xff0c;京东云能做什么&#xff1f;它的角色是什么&#xff1f;这个问题背后&#xff0c;隐藏的不仅是京东云自身的能力和价值&#xff0c;更是其作为中国互联网云厂商的代表之一&#xff0c;对“技术产业”的新论证。 作者|皮爷 出品|产业家 关于云…