ヘッダー行(と呼ばれるaggregate_file
)を含むcsvファイルを取得し、列で並べ替えて、別のcsvファイル(と呼ばれる)に再書き込みしていますsorted_file
。並べ替える列の見出しは、で指定されvariable_names
ます。
def sortbyCounty(aggregate_file, sorted_file, *variable_names):
f = open(aggregate_file, 'r')
readit = csv.reader(f)
headers = readit.next()
col_indices = []
for var in variable_names:
col_indices.append(headers.index(var))
print col_indices
thedata = list(readit)
thedata.sort(key=operator.itemgetter(col_indices))
fx = open(sorted_file, 'w')
writeit = csv.writer(fx)
writeit.writerow(headers)
writeit.writerows(thedata)
writeit.close()
return sorted_file
次に、この関数を次の行で呼び出します。
aggregate_file = "Aggregate_test90.csv"
sorted_file = "County_test90.csv"
variable_names = 'CTYCODE90'
test = sortbyCounty(aggregate_file, sorted_file, *variable_names)
これが私のエラーメッセージです:
col_indices.append(headers.index(var))
ValueError: list.index(x): x not in list
ただし、print
リストheaders
を表示すると、変数が存在することがはっきりとわかります。
['_STATE90', 'HEIGHT90', 'WEIGHT90', '_BMI90', 'AGE90', 'CTYCODE90', 'IYEAR90', 'SEX90', '_RFOBESE90']
そのため、なぜこのエラーメッセージが表示されるのかまったくわかりません。私は何が欠けていますか?