当前位置: 首页 > article >正文

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

目录

一、适用场景

二、业务需求

三、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 = csvheader
    writer = 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.kler.cn/a/14629.html

相关文章:

  • Vue CLI 环境变量和模式
  • Three——二、加强对三维空间的认识
  • 【学习心得】页面banner布局相关
  • 01 【Sass的安装使用】
  • github 基础
  • 架构师的六大生存法则
  • 龙讯旷腾材料计算大赛启动,打怪升级赢大奖
  • 八股文 -- Java基础和集合框架
  • Chat GPT在全球变暖中的潜在应用
  • VS2022配置GDAL
  • vue父子组件之间的传参的几种方式
  • 用python创建一个路径文件夹
  • flex弹性布局的基本操作知识
  • Dynamic Slicing for Deep Neural Networks
  • 浏览器输入 http 自动转 https 问题解决方法
  • 优化Dynamics 365建议
  • AI绘图风格对照表/画风样稿详细研究记录及经验总结(分析Midjourney和Stable Diffusion风格提示词实际使用情况)不断更新中...
  • DHCP 服务器监控
  • 【Linux】popen pclose接口介绍
  • 【JavaWeb】JavaScript