酸洗和加载一个熊猫数据帧与每个循环保存进度…坏主意?

2021-10-17 17:51:40 发布

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

我有一个for循环,它对数千行执行API调用。你知道吗

(我知道不建议使用for循环,但是这个api有速率限制,所以慢一点更好。我知道我也可以做iterrows,但这只是一个例子)

有时我回来发现循环失败了,或者api出了问题,我需要停止循环。这意味着我丢失了所有的数据。你知道吗

我在考虑在每个循环结束时对数据帧进行酸洗,并在开始时重新加载它。这将保存对数据帧的所有更新。你知道吗

假例子(不是工作代码-这只是一个'what if'):


for i in range(len(df1)):

    # check if df pickle file in directory

    if pickle in directory:

        # load file
        df1 = pickle.load(df1)

        # append new data
        df1.loc[i,'api_result'] = requests(http/api/call/data/)

        # dump it to file
        pickle.dump(df1)

    else:
         # start of loop

         # append new data
         df1.loc[i,'api_result'] = requests(http/api/call/data/)

         # dump to file
         pickle.dump(df1)

如果这不是保存更新文件以防失败或提前停止的好方法,那是什么?你知道吗