在文件中将多个列表写为列

时间:2018-10-03 17:34:19

标签: python

我有三个列表

list1 = ['123','124','125']
list2 = [0.223333, 0.3434344, 0.4545454]
list3 = [ 0.53434, 0.453535, 0.534343]

list1str的列表; list2list3float64。 我想将它们打印在类似文件中的

123 0.223333 0.53434
124 0.343434 0.453535
125 0.454545 0.534343

我尝试过

writer = csv.writer(writeCSVfile, delimiter=',', lineterminator='\n', quotechar='"')
row_list = zip(list1, str(list2), str(list3))
for row in row_list: 
    writer.writerows(row)

但是我以怪异的方式打印出数字。

2 个答案:

答案 0 :(得分:4)

不要在其他两个列表中加上字符串。这就使它们成为对字符串中的字符而不是列表中元素的迭代器。

请尝试以下操作:id | name | rating ------------------ 1 | name1 | 3 2 | name2 | 0 3 | name3 | 4.5

哦,如果您只写一行,请使用row_list = zip(list1, list2, list3)代替writerow

答案 1 :(得分:2)

熊猫非常适合此。

import pandas as pd

list1 = ['123','124','125']
list2 = [0.223333, 0.3434344, 0.4545454]
list3 = [ 0.53434, 0.453535, 0.534343]

df = pd.DataFrame({'l1': list1, 'l2': list2, 'l3': list3})
df.to_csv('filename.csv')