CSV数据文件中的Python KeyError

时间:2014-04-20 00:27:37

标签: python csv

我收到此错误:

line 121, in <module>
    data=convertData(data,header)
line 86, in convertData 
    Data.append([row[item] for item in header])
KeyError: 'ELEM'

代码是:

def convertData(data,header):
    Data=[]
    for row in data:
        Data.append([row[item] for item in header])   !line 86
    return Data

data=convertData(data,header)       !line 121
writeTable(data,header,'%s %s Data' % (line,lc),'table%s%s.tex' % (line,lc))

数据和标题来自* .csv文件。 .csv数据的示例是:

ELEM  EType     OD      T       Tc      
1     16        2.375   0.462   0.462

我不确定问题是什么。谁能帮我?谢谢。

2 个答案:

答案 0 :(得分:0)

猜测,您正在阅读带有csv.reader的.csv文件,该文件返回数字索引的数据行。

而不是寻找ie row["ELEM"]尝试row[0]

答案 1 :(得分:0)

这与您的错误无关,但如果您想使用numpy来避免这些csv问题:

import numpy as np

dat = np.genfromtxt('dat.txt', dtype=float, delimiter='\t', skip_header=1)
print dat    # all data in 2d array

或者,如果您想保留列名称:

import numpy as np

dat = np.genfromtxt('dat.txt', dtype=float, delimiter='\t', names=True)
print dat['ELEM']    # the first column accessed by its names

假设:您的数据列以tab分隔。