我有一个每个州的sat分数的CSV文件。该文件每行包含一个州的数据(state_name,rate,math,verbal)。我创建了一个字典,其中包含状态,速率,数学,口头的关键值,代码如下:
with open('../sat_scores.csv', mode='r') as f:
sat = {}
reader = csv.reader(f)
for row in reader:
for item in row:
sat[item]=[]
break
现在我用剩余的CSV填充列。数据的字典格式将是列名作为键,每列下的数据作为值。我还需要将字符串数字列Rate,Math和Verbal放入浮点数。我已经走到了这一步:
for row in reader:
for item, key in (row, sat.keys()):
if key == 'State':
sat[key].append(item)
print(sat)
else:
new_item = float(item)
sat[key].append(new_item)
print(sat)
我无法弄清楚如何同时遍历sat字典的键和行中的项目。请帮帮忙?
答案 0 :(得分:0)
您需要保持标题字段的顺序:
reader = csv.reader(f)
header = next(reader)
for row in reader:
for name, value in zip(header, row):
print(name, value)
你自己并不是真的需要这样做,你可以使用csv.DictReader获取每行的字典,并从第一行获取密钥:
reader = csv.DictReader(f)
for row in reader:
print(row)