У меня есть большой CSV-файл с примерно 200 именами заголовков (первое из которых пустое).
Я хочу получить некоторые выбранные столбцы и скопировать их в новый файл output.csv. Моя проблема заключается в получении заголовка, который не имеет названия! (пустой первый элемент в заголовке)
Итак, input.csv выглядит примерно так:
,header1,header2,header3,header4, ... , header200
value0, value2, value2, value3, value4, ..., value200
,2,3,30,,, ... , 10
66,2,3,30,, ... , 10
и т. Д. (Все строки имеют одинаковое количество элементов, даже если они пусты).
После прочтения различных вопросов я переработал некоторый код из
выводит столбцы CSV в другом порядке в Python
написать,
import csv
from operator import itemgetter
SelectedSignals = ['header1', 'header4']
fiin=open('input.csv','rb') #open to read "r" in binary mode "b"
fiout=open('output.csv','wb') #open to write "w" in binary mode "b"
reader = csv.reader(fiin, delimiter=',')
writer = csv.writer(fiout, delimiter=',')
AllSignalNames = reader.next()
name2index = dict((name, index) for index, name in enumerate(AllSignalNames))
writeindices = [name2index[name] for name in SelectedSignals]
reorderfunc = itemgetter(*writeindices) # itemgetter was imported from operator module
writer.writerow(SelectedSignals)
for row in reader:
writer.writerow(reorderfunc(row))
это дает желаемый результат,
говорят,
,header1,header4
value0, value4
,30
66,30
но проблема в том,
SelectedSignals = [' ', 'header1', 'header4']
чтобы захватить первый столбец. который возвращает KeyError
Я новичок в питоне, поэтому любые советы приветствуются.