如何在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]]
输出应如下所示:
你知道如何解决这个问题吗?
答案 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。