2016-12-09 1 views
0

python을 사용하여 파이썬 배열을 csv 파일로 내보내 려합니다. 그러나, 나는 그것을 만들 수 없었다, 누군가 나를 기쁘게 도와 줘? 내 샘플 데이터와 코드가 울부 짖는 소리 같습니다파이썬을 사용하여 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 03,551

내 초안 코드는 다음과 같습니다

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'을 가지고 있습니다. 따라서 두 가지 방법, 즉 데이터를 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

이상적인 것은 Python 표준 라이브러리의'csv' 모듈을 사용하여 CSV 파일을 작성하는 것입니다. 또한 파이썬은 식별을 위해 8 칸을 사용할 수 있지만 "세계"는 4를 사용하고 일부는 2를 사용합니다. – jsbueno

+0

때로는 일부 데이터를 지우고 이동해야하는 경우가 있습니다. 첫 번째 해결책이 문제를 해결하면 충분하다. 그러나 나는 당신의 요점을 이해합니다. – GustavoIP

관련 문제