Python多维列表到csv

时间:2018-01-08 14:12:13

标签: python python-2.7 csv

如何在python中将多维列表写入csv文件。 我试过这样的事情:

with open(output, 'wb') as f:
    wtr = csv.writer(f, delimiter= ',')
    wtr.writerows(mylist)   

或者这个:

i = 1
while i < len(mylist):
    input = os.path.join(folder, str((i-1)) + '_development)
    with open(input,'r') as csvinput:
        output = os.path.join(folder, str(i) + '_development)
        with open(output, 'w') as csvoutput:
            writer = csv.writer(csvoutput)
            for row in csv.reader(csvinput):
                writer.writerow(row+mylist[i])
    os.remove(input)
    i +=1    

但是csv文件只有一列。

我的清单:

[[1,2,3],[4,5,6]]

输出应如下所示:

table

你知道如何解决这个问题吗?

3 个答案:

答案 0 :(得分:1)

首先转置您的列表输入:

l = [[1,2,3],[4,5,6]]
l = zip(*l)

你会得到:

[(1, 4), (2, 5), (3, 6)]

然后拨打writerows()

答案 1 :(得分:0)

为什么要使用'wb'标志?如果您使用的是Python 3,则还需要包含newline=''

修改

with open(file, 'w') as f:
    w = csv.writer(f, delimiter=',')
    for row in mylist:
        w.writerow(row)

答案 2 :(得分:0)

我建议使用pandas:

import pandas as pd

l = [[1,2,3],[4,5,6]]
df = pd.DataFrame(l).T # construct data frame and transpose

df.to_csv('output.csv', header=False, index=False, sep=',')

相同的代码应该适用于python 2.7和3.X以及pandas版本&gt; 0.19。