0

所以,我在一个地方工作,在这里我使用了很多 Python (Pandas),数据越来越大,上个月我处理了几十万行,几周后我处理了几百万行现在我正在处理 4200 万行。我的大部分工作只是获取一个数据框,对于每一行,我需要在另一个数据框中查阅其“等效”并处理数据,有时只是合并,但更多时候我需要使用等效数据执行功能。在有几十万行的日子里,只使用 apply 和一个简单的过滤器就可以了,但现在它非常. 最近我改用 vaex,它在各个方面都比 pandas 快得多,但经过一段时间的搜索,我发现 apply 是最后一个资源,只有在你没有其他选择的情况下才应该使用。那么,还有其他选择吗?我真的不知道

一些代码来解释我是如何做到这一点的:

def get_secondary(row: pd.DataFrame):
    cnae = row["cnae_fiscal"]
    cnpj = row["cnpj"]
    # cnaes is another dataframe
    secondary = cnaes[cnaes.cnpj == cnpj]
    return [cnae] + list(secondary["cnae"].values)

empresas["cnae_secundarios"] = empresas.apply(get_secondary, axis=1)

正如我所说,这不是唯一的用例。

4

0 回答 0