CSV writer在一个单元格中打印列表

2024-06-20 15:11:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试进行回归分析,然后将结果保存在csv文件中

两个问题:

  1. 为什么来自回归分析的结果集/列表(regr.predict来自sklearn import linear_model)在单个单元格中以csv打印?我试图将每个预测打印在一行中,一行一行地放在另一行的下面(在我的例子中,我有418个结果,所以在同一列中应该有418行)。
    prediction1=regr.predict(xtest)
    with open('my_output_file.csv', 'w', newline='') as f:
        fieldnames=['PassengerId','Survived']
        writer = csv.DictWriter(f, fieldnames)
        writer.writeheader()
        for result in prediction1:
            writer.writerow({'PassengerId':'test','Survived':prediction1})
    
  2. 如何让python在csv中的特定列甚至特定单元格中编写?(例如,如果我希望在第一列中有一个乘客ID,然后在第二列中有回归结果。)

Tags: 文件csvimport列表modelsklearnpredict例子
1条回答
网友
1楼 · 发布于 2024-06-20 15:11:54
  1. 您使用“result”在prediction1上迭代,但在每一行上都写入整个prediction1:

    for result in prediction1:
        writer.writerow({'PassengerId':'test','Survived':result})
    
  2. 你已经在这么做了。首先定义列及其顺序(fieldnames),然后在调用writerow()时,给它一个包含每个列的值的dict,然后csv.DictWriter将它们按正确的顺序排列

    你可以写:

    for result in prediction1:
        writer.writerow({'Survived':result, 'PassengerId':'test'})
    

并且有相同的精确结果

相关问题 更多 >