控制台终止时数据框是否保留
Does dataframe remain when console is terminated
我创建了一个 Pandas 数据框:
scores = pd.DataFrame(
{"batch_size" : list(range(64)),
"learning_rate" : list(range(64)),
"dropout_rate" : list(range(64)),
"accuracies" : [[0]]*64,
"loss" : [[0]]*64,
"training_time" : list(range(64)),
}, index = list(range(64)))
然后,在循环中我 运行 64 个模型并将结果添加到列表中。
循环仍在进行中,我不希望它在我的截止日期之前完成。因此,我想终止控制台并继续使用目前已存储在 scores
中的信息。但是,如果我在终止循环后仍然可以访问数据帧,我只想这样做。
如果我在循环仍在 运行ning 时终止循环,我可以使用具有中间结果的数据帧吗?
如果可能的话,我会优先考虑 pandas 方法而不是使用 for 循环,因为这会解决核心问题。更好的是,如果您能够将 for 循环更改为 pandas 方法,并且您希望执行得更快,那么许多 pandas 方法也可以被一个名为 python 的大数据库使用dask
。这有点高级,但我在一个大型项目中处于类似的位置,dask
是一个很好的解决方案,但我花了一天左右的时间来适应这个库并将我的代码从 pandas 到天亮。
如果您只想保持代码原样并在 pandas 中执行此操作,那么我会考虑将数据帧分成块,如果它仍然需要永远处理:
n = 100000
scores_df_list = [scores[i:i+n] for i in range(0,scores.shape[0],n)]
i=0
for df in scores_df_list:
i+=1
#inefficient for loop code on large dataset...
#inefficient for loop code on large dataset continued...
df.to_csv(f'file{i}.csv')
从@ScottBoston 的回答中查看更多信息,如果有帮助,请为他的解决方案投票::
我创建了一个 Pandas 数据框:
scores = pd.DataFrame(
{"batch_size" : list(range(64)),
"learning_rate" : list(range(64)),
"dropout_rate" : list(range(64)),
"accuracies" : [[0]]*64,
"loss" : [[0]]*64,
"training_time" : list(range(64)),
}, index = list(range(64)))
然后,在循环中我 运行 64 个模型并将结果添加到列表中。
循环仍在进行中,我不希望它在我的截止日期之前完成。因此,我想终止控制台并继续使用目前已存储在 scores
中的信息。但是,如果我在终止循环后仍然可以访问数据帧,我只想这样做。
如果我在循环仍在 运行ning 时终止循环,我可以使用具有中间结果的数据帧吗?
如果可能的话,我会优先考虑 pandas 方法而不是使用 for 循环,因为这会解决核心问题。更好的是,如果您能够将 for 循环更改为 pandas 方法,并且您希望执行得更快,那么许多 pandas 方法也可以被一个名为 python 的大数据库使用
dask
。这有点高级,但我在一个大型项目中处于类似的位置,dask
是一个很好的解决方案,但我花了一天左右的时间来适应这个库并将我的代码从 pandas 到天亮。如果您只想保持代码原样并在 pandas 中执行此操作,那么我会考虑将数据帧分成块,如果它仍然需要永远处理:
n = 100000 scores_df_list = [scores[i:i+n] for i in range(0,scores.shape[0],n)] i=0 for df in scores_df_list: i+=1 #inefficient for loop code on large dataset... #inefficient for loop code on large dataset continued... df.to_csv(f'file{i}.csv')
从@ScottBoston 的回答中查看更多信息,如果有帮助,请为他的解决方案投票: