我具有如下所示的功能和数据框:
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
但是我找不到更好的方法来处理它。我看到有人尝试计算所有结果,然后一次存储一次,但是在这种情况下,这似乎不是一个好主意。有谁有更好的主意吗?提前致谢!
答案 0 :(得分:0)
如果我了解您的需求,那应该可以助您一臂之力:
for i in range(1,10001):
df = rand_million()
df.to_csv('No_{}.csv'.format(i))
答案 1 :(得分:0)
只需将每一行写入csv,然后调用fp.flush()
,其中fp
是您要写入的打开文件句柄。刷新会立即写出该行,因此,如果您的进程在完成所有遍之前都死了,则数据是安全的。