我正在尝试使用列表
创建一个csv文件['2005-04-18', '2005-04-19', '2005-04-20']
['1', '1', '1']
['0.7683', '0.766664', '0.764696']
['1.380162', '1.373308', '1.358544']
第一列中的日期和行中的相应值
我已经
了with open((os.path.join('data','hist', 'rates-'+date1+' to ' +date2+ '.csv')), 'wt') as my_csv:
csv_writer = csv.writer(my_csv, lineterminator='\n')
csv_writer.writerow(["Date",curr1, curr2, curr3])
它给我带有标题的文件。我怎么能完成这个?
答案 0 :(得分:3)
使用循环来处理您拥有的数组元素。
a = ['2005-04-18', '2005-04-19', '2005-04-20']
b = ['1', '1', '1']
c = ['0.7683', '0.766664', '0.764696']
d = ['1.380162', '1.373308', '1.358544']
您可以使用zip
从列表中创建元组并编写它们:
for row in zip(a, b, c, d):
csv_writer.writerow(row)
或者您可以自己使用字符串格式并将其打印到文件中(不使用csv_writer):
for i in range(len(a)):
csv_writer.writerow('{}, {}, {}, {}'
.format(a[i], b[i], c[i], d[i]))
答案 1 :(得分:0)
如果你有pandas
,你可以这样做(从0.20开始工作)。首先,将数据加载到数据框中:
a = ['2005-04-18', '2005-04-19', '2005-04-20']
b = ['1', '1', '1']
c = ['0.7683', '0.766664', '0.764696']
d = ['1.380162', '1.373308', '1.358544']
df = pd.DataFrame([a, b, c, d]).T # pass in a list of lists
print(df)
0 1 2 3
0 2005-04-18 1 0.7683 1.380162
1 2005-04-19 1 0.766664 1.373308
2 2005-04-20 1 0.764696 1.358544
现在,重命名您的列:
df.columns = ['A', 'B', 'C', 'D'] # set the column headers
现在,保存为CSV:
df.to_csv('out.csv') # call df.to_csv to save to csv