当控制台终止时,数据帧是否保留

2024-04-25 17:31:08 发布

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

我已经创建了一个数据框:

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中的信息。但是,我只想在终止循环后仍然可以访问数据帧的情况下执行此操作

如果在循环仍在运行时终止循环,是否可以使用具有中间结果的数据帧


Tags: 数据dataframesizeratetimebatchtrainingrange
1条回答
网友
1楼 · 发布于 2024-04-25 17:31:08
  1. 如果可能的话,我会优先考虑pandas方法,而不是使用for循环,因为这将解决核心问题。更好的是,如果您能够将for循环更改为pandas方法,并且希望更快地执行,那么许多pandas方法也可以被称为dask的大数据python库使用。这有点高级,但我在一个大型项目中处于类似的位置,dask是一个很好的解决方案,但我花了一天左右的时间来习惯这个库,并将我的代码从pandas转换到dask

  2. 如果您只想保持代码的原样并在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 - Slice Large Dataframe in Chunks

相关问题 更多 >

    热门问题