2016-12-09 17 views
0

我想使用pyhton將我的python數組導出到csv文件。但是,我無法做到,任何人都可以幫助我嗎?我的採樣數據和代碼波紋管示出:二維數組使用python的csv文件

陣列:

[[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

它確實有助於試圖使用'Dictwriter'當具有'dictionary'。因此,您可以採用兩種方法,將數據轉換爲字典結構,然後重試或僅手動寫入。 –

+0

是'name_list'二維數組/列表? – 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

理想的是使用Python標準庫中的'csv'模塊編寫CSV文件。另外,Python允許使用8個空格來標識 - 但「世界」realluy使用4,某些地方使用2. – jsbueno

+0

有時您只需要清除一些數據並繼續前進,如果出現的第一個解決方案解決了問題,那麼夠好了。但我明白你的觀點。 – GustavoIP