如何解决如何在没有内置数据结构或库的情况下对 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 举报,一经查实,本站将立刻删除。