将结果保存到csv文件,而不使用Python打开csv

2024-10-01 07:45:44 发布

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

我有如下所示的函数和数据帧:

def rand_million()
    df = some calculating
    return df   

df =
       index           boolvalue  
2014-05-21 10:00:00          9.9        
2014-05-21 11:00:00         10.3        
2014-05-21 12:00:00          4.3   
2014-05-21 13:00:00          3.7        
2014-05-21 14:00:00          5.4        
2014-05-21 15:00:00            0 
...

and len(df) = 1000

这个数据帧是由一个函数调用'rand\u million'计算出来的,每次结果都不一样,我想计算这个函数100万次并将它们存储到csv中

我希望只收到一个csv(例如名为'simulationresult'),如下所示

1 time        9.9, 10.3, 4.3, 3.7, 5.4, 0, ...    <- 1000 results
2 time        .....                               <- 1000 results

.....

1000000 time  ....                                <- 1000 results

我认为框架应该是这样的:

for i in range(0,10000):
    df = rand_million()
    store df to simulationresult line(i+1)
    clear df    <- "in oder to save memory"
    ...something like this

但是我找不到更好的方法来处理它。我看到有人试图计算所有的结果,然后存储在一个时间,但在这种情况下,这似乎不是一个好主意。有人有更好的主意吗?提前谢谢


Tags: csvto数据函数indftimedef
2条回答

如果我知道你想要什么,这会让你走的:

for i in range(1,10001):
    df = rand_million()
    df.to_csv('No_{}.csv'.format(i))

只需将每一行写入csv,然后调用fp.flush(),其中fp是要写入的打开文件句柄。Flushing会立即写出该行,因此如果进程在完成所有传递之前死亡,则数据是安全的

相关问题 更多 >