【发布时间】:2017-09-14 21:19:35
【问题描述】:
我有一个名为 'r2.csv' 的示例 csv 文件:
Factory | Product_Number | Date | Avg_Noshow | Walk_Cost | Room_Rev
-------------------------------------------------------------------------
A | 1 | 01APR2017 | 5.6 | 125 | 275
-------------------------------------------------------------------------
A | 1 | 02APR2017 | 4.5 | 200 | 300
-------------------------------------------------------------------------
A | 1 | 03APR2017 | 6.6 | 150 | 250
-------------------------------------------------------------------------
A | 1 | 04APR2017 | 7.5 | 175 | 325
-------------------------------------------------------------------------
我有以下 python 代码来读取 csv 文件并将列传输到数组:
# Read csv file
import csv
with open('r2.csv', 'r') as infile:
reader = csv.DictReader(infile)
data = {}
for row in reader:
for header, value in row.items():
try:
data[header].append(value)
except KeyError:
data[header] = [value]
# Transfer the column from list to arrays for later computation.
mu = data['Avg_Noshow']
cs = data['Walk_Cost']
co = data['Room_Rev']
mu = map(float,mu)
cs = map(float,cs)
co = map(float,co)
除了最后一行之外,它运行良好,并且有以下错误消息:
File "<stdin>", line 1, in <module>
KeyError: 'Room_Rev'
我该如何避免呢?
【问题讨论】:
-
乍一看,不应该是逗号分隔值而不是管道吗?
-
@GarrettKadillak 你的意思是 csv 文件吗?它是逗号分隔值文件。