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

时间:2018-06-26 13:30:49

标签: python csv dataframe

我具有如下所示的功能和数据框:

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_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

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

2 个答案:

答案 0 :(得分:0)

如果我了解您的需求,那应该可以助您一臂之力:

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

答案 1 :(得分:0)

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