Python CSV在列中写入列表

Python CSV在列中写入列表,python,algorithm,csv,Python,Algorithm,Csv,我对用Python编写CSV非常陌生,到目前为止我还没有找到我需要的东西。我正在运行一个算法X次,比如说10次,但可以是100或1000次,在越来越多的条目上,以收集一些数据。确切地说,我正在做以下工作: 步骤1:设置算法实例大小 步骤2:运行算法X次,并存储每次运行的结果 步骤3:增加实例大小,转到步骤2。 在步骤2的末尾,我有一个如下所示的列表: 每次迭代交换的消息数: [13.181238,10.0,10.0,10.0,13.181238,10.0,10.0,10.0,16.362476,

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

步骤1:设置算法实例大小 步骤2:运行算法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文件的新行追加,直到一切都完成

该文件可能如下所示:

呼叫1呼叫2呼叫3。。。打电话 13.181238 20.0 10.0 23.181238
有可能吗

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

import csv
from itertools import izip
a = izip(*csv.reader(open("tempfile.csv", "rb")))
csv.writer(open("output.csv", "wb")).writerows(a)
如果你的文件在内存中,这将不会有任何问题

<> P>如果你必须定期重复这一点,并且你希望这很快,并且你不介意引入一个巨大的依赖关系,那么就考虑熊猫:

import pandas as pd
pd.read_csv('tempfile.csv').T.to_csv('output.csv',header=False)
作为奖励,您得到了T操作,它确实转置了底层 使用pd.read_csv'tempfile.csv'创建的数据帧


在Python中使用CSV可以做的任何事情都最好使用Pandas…

你想做什么?我想在不知道更多的情况下,听起来你只是在尝试执行算法,然后存储与运行、时间等相关的元数据。是的,完全可行。是的,这正是我想做的,它只是根据收集的数据在excel上做一些方框图。但是我没有发现任何关于逐列书写的内容,每次像这样做一个基本的操作看起来都很长。@electrion你可以用几行熊猫来完成。使用csv模块,我不知道有多容易。添加一个新列需要一行一行地读取整个现有csv文件,并为该行添加列的数据。由于很难在适当的位置执行此操作,所以需要将每个修改行的数据写入单独的文件。该过程完成后,您可以将原始文件替换为新文件。根据文件的大小,将整个内容读入内存,将新列添加到所有行,然后覆盖现有文件会快得多。非常感谢您提供的提示,我不知道。我一点也不介意使用一些依赖项,所以这是可以的。我试试看。