【发布时间】:2019-11-08 01:57:45
【问题描述】:
我有一个大的 .csv 文件,大约有 150M 行。我仍然可以将整个数据集放入内存并使用 Pandas 进行分组和组合。示例...
aggregated_df = df.groupby(["business_partner", "contract_account"]).sum()
在上面的示例中,数据框包含两个整数列,business_partner 和 contract_account,它们用作分组操作的键。可以假设剩余的列都是我想要聚合的浮点特征。
但是,这仅使用了我工作站上 48 个内核中的 1 个。我正在尝试使用vaex 来利用我所有的内核,但无法弄清楚执行 groupby 和 combine 的 API 调用。也许在 Vaex 中还不可能?
编辑:
- 我知道此操作可以在 dask 中完成,但对于这个问题,我想重点关注 Vaex。
【问题讨论】:
-
你的数据是什么样的?
-
@davidrpugh 您是否愿意使用 dask 进行此操作。它具有与 pandas 相同的 api(建立在 pandas 之上)。
from dask.distributed import Client; client = Client(n_workers=1, threads_per_worker=4, processes=False, memory_limit='2GB') ;df.goupby(["col1", "col2"]).sum().compute()