如何在进行多个异步调用时更新列表、字典或数据框的内容?

问题描述 投票:0回答:0

我正在构建一个 DataFrame (pandas),其中包含一些信息。在某些时候,一旦 DataFrame 完成,我需要对每个 DataFrame 执行一些计算。

目前,你可以说它看起来像这样:

def perform_calculations(df: DataFrame):
        calculations = df.text.apply([lambda x: calculate(x)])
        df["calculations"] = calculations
        return df

然而,虽然这工作了一段时间,但它变得非常慢。

calculate
函数发出一些 API 请求,并且随着 DataFrame 的大小越来越大,完成它所需的时间也越来越长。

calculate
函数不关心其他文本,这意味着这项工作可以并行化。但是,我不确定如何以并行方式更新 DataFrame。我想直到最后我才需要更新 DataFrame,而是可以将信息收集到某种列表中,然后更新 DataFrame?

但是我该怎么做呢?我如何异步调用

calculate
并收集其所有返回值,然后更新 DataFrame?

python dataframe asynchronous python-asyncio aiohttp
© www.soinside.com 2019 - 2024. All rights reserved.