python - KeyError 读取 csv 文件并传输到数组

标签 python arrays csv

我有一个名为 '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'

我该如何避免呢?

最佳答案

我只处理了您的 csv 的前两行,但这为您提供了所需的输出:

with open('r2.csv', 'rb') as fin:
    reader = csv.DictReader(fin)
    data = {}
    for row in reader:
        for k, v in row.iteritems():
            if k in data:
                data[k] = [data[k],v]
            else:
                data[k] = v

这会返回:

{'Avg_Noshow': ['5.6', '4.5'],
 'Date': ['1-Apr-17', '2-Apr-17'],
 'Factory': ['A', 'A'],
 'Product_Number': ['1', '1'],
 'Room_Rev': ['275', '300'],
 'Walk_Cost': ['125', '200']}

关于python - KeyError 读取 csv 文件并传输到数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43482268/

相关文章:

Python:按不同值对单列进行分组

python - 恢复和评估 Tensorflow 模型

JavaScript 获取 API : accessing local variable globally

Javascript 用 setTimeout 递归循环数组?

javascript - d3.csv 将列值映射为对象中的键

python - 如何创建矩阵模板来检查句子相似度?

php - 如何在php中获取特定的数组值

php - 读入一个文本文件,按异常字符分割,逐行处理 "line"

python - 检查 python 字典中的值列表中的值是否存在于另一个字典中

Python 函数在类定义之外赋值会导致参数异常