微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在没有内置数据结构或库的情况下对 CSV 电子表格进行排序并乘以多列?

如何解决如何在没有内置数据结构或库的情况下对 CSV 电子表格进行排序并乘以多列?

所以我需要设计和使用数据结构来处理 Excel 电子表格,而不使用内置的数据结构和库。我需要对列表进行排序(不确定“排序”是否是一个内置结构),以便人们根据他们的 BMI 进行分类

如何使用我创建的函数将同一行上的两个值相乘(我收到一个错误,说我不能将列表/字符串相乘,如果我转换它们,它仍然说它们不兼容,我认为由于使用了标题行/标题)?以及如何根据 BMI 按顺序列出所有行,但仍保留特定于患者的所有其他信息?

很遗憾,我无法显示我正在使用的文件,因为它们特定于我的机构。我可以展示我到目前为止编写的代码。以及表格的格式。

表格:

Name,dob,Gender,Height,Weight
Gerald,27/5/1991,M,1.40,87,Chris,15/11/1997,1.70,31,Amanda,01/01/1969,F,1.33,30,Karen,05/02/1955,1.12,40,

代码

import csv

file = open('csv_file','r')

csv1 = csv.reader(file,delimiter=',')
weight_list = list()

def bmi(weight,height):
    return round((weight) / (height ** 2),1)

line_count = 0

for row in csv1:
    if line_count == 0:
        print(f'Column names are {",".join(row)}')
        line_count += 1
    if line_count > 0 and line_count != 0:
        weight_list.append(row[4])
        print(f'\t ID: {row[0]} dob: {row[1]} Gender: {row[2]} BMI: Weight / Height Squared {row[4]} {row[3]}' )
        line_count += 1
    print(f'Processed {line_count} lines.')

print(weight_list[1:])

输出

             ID: Gerald dob: 27/05/1991 Gender: M BMI: Weight / Height Squared 87 1.40
Processed 3 lines.
         ID: Chris dob: 15/11/1997 Gender: M BMI: Weight / Height Squared 31 1.70
Processed 4 lines.
         ID: Amanda dob: 01/01/1969 Gender: F BMI: Weight / Height Squared 30 1.33
Processed 5 lines.
         ID: ABD176 dob: 25/03/1967 Gender: F BMI: Weight / Height Squared 40 1.12

输出扩展:

['87','31','30','40']

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。