从列表创建结果表

时间:2014-04-18 23:46:39

标签: python dataset

我有一个非常简单(我认为)的问题,但找不到答案。我已经习惯了R,创建和操作数据集非常简单。 我正在编写一个python代码,生成3个值列表,如下所示:

names = [control, control, control, vinc, vinc, vinc] area = [20.3, 23.4, 24.5, 65.45, 76.45, 34.65] mean = [123, 232, 132, 65, 34, 65]

我想将这些列表输出为一个csv文件,其中每个列表都是一列:

names, area, mean control, 20.3, 123 control, 23.4, 232 control, 24.5, 132 vinc, 65.45, 65 vinc, 76.45, 34 vinc, 34.65, 65

这样做真的很难,但我找不到方法。

任何想法? 谢谢!

2 个答案:

答案 0 :(得分:1)

使用zip功能和csv模块:

import csv

names = ['control', 'control', 'control', 'vinc', 'vinc', 'vinc']
area = [20.3, 23.4, 24.5, 65.45, 76.45, 34.65]
mean = [123, 232, 132, 65, 34, 65]

op_file = open('output', 'w')
csv_writer = csv.writer(op_file, delimiter=',')
csv_writer.writerow(['names', 'area', 'mean']) #print the header
for row in zip(names, area, mean):
    csv_writer.writerow(row) # write each row by zipping the three lists
op_file.close()

答案 1 :(得分:0)

除非您将列表名称保存在某处,否则我无法想出一种在文件中自动写入列表名称的方法。

因此,假设您需要打开非二进制文件的文件:

f=open('test.csv','w')

然后按字符串写每个行字符串,包括回车符:

f.write('names area mean \n')
for i in range(len(names)):
    f.write(names[i]+', '+str(area[i])+', '+str(mean[i])+ '\n')

这应该创造你需要的东西。