为了账号安全,请及时绑定邮箱和手机立即绑定

预测python后有效地写入文件

预测python后有效地写入文件

慕沐林林 2023-04-25 17:18:26
我是编程新手,正在尝试减少将数据写入文件所需的时间,但我发现写入部分是主要问题。以下是我的机器学习程序代码的一部分:filename="data.csv"f=open(filename,"w")headers="row,open\n"f.write(headers)for i in range (0,55970):    score=rf.predict(edit[i].reshape(1, -1))    score=str(score).replace('[','').replace(']','')    f.write(str(i) +","+ score +"\n")    f.close()我知道我应该只在获得所有数据后才写入数据,但我不确定如何去做——因为我只知道 f.write()。我是否为我的预测和返回分数创建一个函数,然后创建一个列表来存储所有分数并将其写入?(如果可能的话)[编辑]score=rf.predict(edit)with open('data.csv', 'w',newline='') as f:    writer = csv.writer(f)    writer.writerow(['row', 'open'])    for i in range(55970):        writer.writerow([i,str(score[i])])^ 根据新建议添加。发现我应该只做预测,然后写下显着缩短时间的行!感谢您的帮助!!
查看完整描述

1 回答

?
汪汪一只猫

TA贡献1898条经验 获得超8个赞

CSV 模块是一个更好的工具。更具体地说,writerows()是您正在寻找的东西。


https://docs.python.org/3/library/csv.html#csv.csvwriter.writerows


这是文档中的示例:


import csv

with open('some.csv', 'w', newline='') as f:

    writer = csv.writer(f)

    writer.writerows(someiterable)

import csv


with open('data.csv', 'w') as csv_file:

    writer = csv.writer(csv_file)

    writer.writerow(['row_id', 'open_flag'])

    for i in range(55970):

        score = str(rf.predict(edit[i].reshape(1, -1)))

        score.replace('[', '').replace(']', '')

        writer.writerow([i, score])


查看完整回答
反对 回复 2023-04-25
  • 1 回答
  • 0 关注
  • 87 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信