2016-12-09 1 views
0

Я хотел бы экспортировать мой массив python в файл csv с использованием pyhton. Однако я не мог этого сделать, кто-нибудь мне помог? Мои выборочные данные и код приведены ниже:двухмерный массив в файл csv с использованием python

массив:

[[311.11324435763891, 459.35657654562112], [326.9993929036458, 488.02189410927855], [323.19149534625774, 455.74575749903551]] 

Я хотел бы, чтобы создать CSV-файл так:

{пустой} Met1 met2 met3

Seq1 311.11324435763891 326.9993929036458 323.19149534625774

seq2 459.35657654562112 488.02189410927855 455.745757499 03551

мой проект код:

def writeCSVFile(outputfile,name_list): 
    with open(outputfile, 'w') as csvfile: 
     fieldnames = [' ' 'm1','m2','m3'] 
     writer = csv.DictWriter(csvfile, fieldnames) 
     writer.writeheader() 

     for x in name_list: 
      writer.writerow({fieldnames[x]:) 
+0

Это действительно помогает имея 'dictionary' при попытке использовать' Dictwriter'. Таким образом, вы можете пойти двумя способами: либо преобразовать свои данные в структуру dict, либо попробовать снова или просто написать их вручную. –

+0

является 'name_list' 2-мерным массивом/списком? – cmidi

ответ

0

Если вы счастливы, используя pandas тогда это будет работать:

import pandas as pd 

df = pd.DataFrame([[311.11324435763891, 459.35657654562112], [326.9993929036458, 488.02189410927855], [323.19149534625774, 455.74575749903551]]).T 

df.columns = ['m1', 'm2', 'm3'] 
df.index = ['seq1', 'seq2'] 
df.to_csv("output.csv",) 
0

Это не красивое решение, но может, в общем решить проблема.

def write_csv_file(filename, data): 
    with open(filename, 'w') as f: 
     data = list(zip(*data)) 
     head = ["{empty}"] + ["met{0}".format(i+1) for i in range(len(data[0]))] 
     f.write(' '.join(head)+'\n') 
     for n, i in enumerate(data): 
      line =["seq{0}".format(n+1)]+[str(x) for x in i] 
      f.write(' '.join(line)+'\n') 

Выход

{empty} met1 met2 met3 
seq1 311.1132443576389 326.9993929036458 323.19149534625774 
seq2 459.3565765456211 488.02189410927855 455.7457574990355 
+0

Идеально использовать модуль 'csv' из стандартной библиотеки Python для записи CSV-файлов. Кроме того, Python позволяет использовать 8 пробелов для идентификации -but «World» realluy использует 4, некоторые места используют 2. – jsbueno

+0

Иногда вам просто нужно очистить некоторые данные и перейти дальше, и если первое решение, которое появляется, решает проблему, это достаточно хорошо. Но я понимаю вашу точку зрения. – GustavoIP

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