我想使用pyhton将我的python数组导出到csv
文件。但是,我无法成功,有人帮我吗?我的示例数据和代码如下所示:
数组:
[[311.11324435763891, 459.35657654562112], [326.9993929036458, 488.02189410927855], [323.19149534625774, 455.74575749903551]]
我想生成一个类似的csv文件:
{empty} met1 met2 met3
seq1 311.11324435763891 326.9993929036458 323.19149534625774
seq2 459.35657654562112 488.02189410927855 455.74575749903551
我的草案代码是:
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 :(得分: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", )
答案 1 :(得分: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