[英]Save results to csv file without open csv with 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_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
但是我找不到更好的方法来处理它。 我看到有人尝试计算所有结果,然后一次存储一次,但是在这种情况下,这似乎不是一个好主意。 有谁有更好的主意吗? 提前致谢!
如果我了解您的需求,这应该可以帮助您:
for i in range(1,10001):
df = rand_million()
df.to_csv('No_{}.csv'.format(i))
只需将每一行写入csv,然后调用fp.flush()
,其中fp
是您要写入的打开文件句柄。 刷新会立即写出该行,因此,如果您的进程在完成所有遍之前都死了,则数据是安全的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.