Python:如何将int32写入csv文件?

时间:2014-01-15 16:36:22

标签: python csv numpy export-to-csv

我正在尝试使用csv.writer对象将numpy数组写入csv文件。但写完后我得到了我的numpy数组的字符串表示!

with open('res.csv', 'w') as csvfile:
   csv_writer = csv.writer(csvfile, delimiter=',', lineterminator='\n')
   csv_writer.writerow(['Id', 'Solution'])       
   csv_writer.writerows(y_pred)

res.csv的一些输出行是:

Id,Solution
1,0
2,1
3,1
4,0
...

但他们存储为字符串!

实际上我正在尝试通过Kaggel site学习python但是在我提交res.csv文件后,排行榜会说我的条目是string格式,并且必须在{{1}格式。

我该如何解决?

2 个答案:

答案 0 :(得分:1)

试试这个:

numpy.savetxt('res.csv', y_pred, fmt='%d', delimiter=',', newline='\n', header='Id, Solution', footer='', comments='# ')

此输出:

$ cat res.csv
# Id, Solution
1,0
2,1
3,1
4,0

您可以使用fmt关键字设置的格式字符串更改格式。见numpy.savetxt()。您也可以更改注释符号。

答案 1 :(得分:1)

你可以这样做:

np.savetxt('test.txt', a, fmt='%d', delimiter=',',
           header='Id,Solution', comments='')

如果必须指定comments='',以避免默认评论“#”位于标题(和页脚)字符串(see here)的开头。