<p><code>csv</code>模块支持从csv文件读取。如果你想做复杂的数据插值,那么当然有熊猫。假设这是一个简单的操作,应该是这样的</p>
<pre><code>import csv
with open(filename, 'r') as stream:
reader = csv.DictReader(stream)
count == 0
for row in reader:
if count != 0 # skip the header, or do something here
p = Patient(row["mrn"], row["first"], row["last"], row["gender"], row["smoker"], row["bmi"], row["asa"], row["cci"], row["dob"], row["dos"], row["age"])
print(p)
count += 1
</code></pre>
<p>我还看到您的patient定义类没有遵循惯用的python。它可以通过以下方式重写为更具python风格。你知道吗</p>
<pre><code>class Patient:
def __init___(self, mrn=None, first=None, last=None, gender=None, smoker=None, bmi=None, asa=None, cci=None, dob=None, dos=None, age=None)
self.mrn = mrn
self.first = first
self.last = last
self.gender = gender
self.smoker = smoker
self.bmi = bmi
self.asa = asa
self.cci = cci
self.dob = dob
self.dos = dos
self.age = age
def __repr__(self):
return '''MRN: {}
First: {}
...
ASA: {}'''.format(self.mrn, self.first,....,self.asa)
</code></pre>
<p>由于构造函数有许多字段,最大的优点之一是可以使用关键字参数来实例化类,并降低将某些字段与其他值混淆的风险。你知道吗</p>