Python KeyError из файла данных CSV

Вопрос: Я получаю эту ошибку: line 121, in data=convertData(data%2cheader).html line 86, in convertData Data.append([row[item] for item in header]) KeyError: 'ELEM' Код: def convertData(data,header): Data=%5b%5d.html for row in data: Data.append([row[item] for item in header]) !line 86 return Data data=convertData(data%2cheader).html !line 121 writeTable(data,header,'%s %s Data' % (line,lc),'table%s%s.tex' % (line,lc)) Данные и заголовок из файла *.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

Я не уверен, в чем проблема. Может кто-нибудь мне помочь? Спасибо.

Ответ №1

csv.reader, вы читаете CSV файл с помощью csv.reader который возвращает числовые данные с числовыми индексами.

Вместо поиска ie row[«ELEM»] попробуйте row[0].

Ответ №2

Это не связано с вашей ошибкой, но если вы хотите использовать 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.

Оцените статью
Добавить комментарий