我有三个列表
list1 = ['123','124','125']
list2 = [0.223333, 0.3434344, 0.4545454]
list3 = [ 0.53434, 0.453535, 0.534343]
list1
是str
的列表; list2
和list3
是float64
。
我想将它们打印在类似文件中的
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)
但是我以怪异的方式打印出数字。
答案 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')