CSV在列中写入列表

2024-04-23 19:13:22 发布

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

我对用Python编写CSV非常陌生,到目前为止我还没有找到我需要的东西。我正在运行一个算法X次(假设10次,但可以是100或1000次),对越来越多的条目,以收集一些数据。确切地说,我正在做以下工作:

  • 第一步:设置算法实例大小
  • 第二步:运行算法X次并存储每次运行的结果
  • 步骤3:增加实例大小,转到步骤2。在

在步骤2的末尾,我有一个如下所示的列表:

每次迭代交换的消息数:
[13.181238, 10.0, 10.0, 10.0, 13.181238, 10.0, 10.0, 10.0, 16.362476, 10.0]

我想把这个列表写在一个csv文件中,作为一个列。然后,当我在一个新实例上调用该算法时,我希望将新列表作为CSV文件的新行追加,直到一切都完成为止。在

文件可能是这样的:

Call 1      Call2       Call3  ... Call N
13.181238   20.0
10.0        23.181238

有可能这样做吗?在


Tags: 文件csv数据实例算法消息列表步骤
1条回答
网友
1楼 · 发布于 2024-04-23 19:13:22

由于CSV模块支持写行(因为文件通常是逐行写入的),所以这里有一种方法可以让您实现这一点。把所有的信息写在一个临时文件中,这样你就不必保存在内存中,当所有的基准点都完成后,旋转CSV文件,从而将行转换为列。在

import csv
from itertools import izip
a = izip(*csv.reader(open("tempfile.csv", "rb")))
csv.writer(open("output.csv", "wb")).writerows(a)

如果你的文件会进入内存,这将不会有任何问题。在

如果你必须定期重复这一点,而且你希望这一点很快,而且你不介意引入一个巨大的依赖,考虑熊猫:

^{pr2}$

作为一个额外的奖励,您可以得到T操作-它确实转换了底层 数据帧(用pd.read_csv('tempfile.csv')创建)。在

在Python中使用CSV可以做的任何事情都比Pandas做得更好。。。在

相关问题 更多 >