我正在构建一个 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?