2013-11-14 3 views
0

У меня есть список, который выглядит как:Напишите csv с столбцами как список в python?

[('CarrierDel', '1973.0', '4227.0', '518.0', '2701.0', '3249.0', '7354.0', '980.0', '428.0', '394.0'), ('CarrierID', '9E', 'AA', 'AS', 'B6', 'DL', 'EV', 'F9', 'FL', 'HA'), ('Delays', '3626.0', '8394.0', '1071.0', '3880.0', '5927.0', '13836.0', '1461.0', '1254.0', '303.0')] 

где 'CarrierDel', 'CarrierID' и 'Задержки' мои заголовки. Я хочу записать это в файл csv. Есть ли эквивалент writow, но для столбцов? Или есть еще один способ сделать это?

Спасибо!

+0

Вы могли бы составить три вместе делают строки вместо столбцов, например, измените то, что вы поставили на что-то вроде '[('CarrierDel', 'CarrierID', 'Delays') ...]' и так далее. Что-то вроде матрицы транспонируется. – PurityLake

ответ

4
import csv 
w = csv.writer(open("some_file.txt","w")) 
w.writerows(zip(*list_of_cols)) 

должен это сделать

почтовыми транспонирует 2d массив (между прочим), как показано ниже

a = [[1,2,3],[4,5,6],[7,8,9]] 
#transpose a with zip 
print zip(*a) #prints [(1,4,7),(2,5,8),(3,6,9)] 
+0

Так что это работает для меня. Но как получилось, когда я использую open (output.csv, 'w') как выход: он разделяет каждый элемент в файле csv? – marc

+0

? что вы имеете в виду? –

+0

Прости, я попробую уточнить. Когда я использую именно то, что вы мне дали, он работает np. Когда я пытаюсь использовать 'with open ('output.csv', 'w') ...' мой вывод выглядит так: ['CarrierDel', 'CarrierID', 'Delays'] "," ['1973.0', '9E ',' 3626.0 '] "," [4227.0', 'AA', '8394.0'] "," ['518.0', 'AS', '1071.0'] "," [2701.0 ',' B6 ',' '3880.0'] "," [3249.0 ',' DL ',' 5927.0 '] "," [' 7354.0 ',' EV ',' 13836.0 '] "," [' 980.0 ',' F9 ',' 1461.0 '] "," [428.0', 'FL', '1254.0'] "," ['394.0', 'HA', '303.0'] " – marc

Смежные вопросы