我目前正在处理一个较小的数据集(大约 900 万行)。不幸的是,大多数条目都是字符串,即使强制类别,框架在内存中也只有几 GB。
我想做的是将每一行与其他行进行比较,并对内容进行直接比较。例如,给定
A B C D
0 cat blue old Saturday
1 dog red old Saturday
Run Code Online (Sandbox Code Playgroud)
我想计算
d_A d_B d_C d_D
0, 0 True True True True
0, 1 False False True True
1, 0 False False True True
1, 1 True True True True
Run Code Online (Sandbox Code Playgroud)
显然,组合爆炸将排除每个记录与其他记录的比较。因此我们可以通过应用 groupby 来使用阻塞,比如在 A 列上。
我的问题是,有没有一种方法可以在 pandas 或 dask 中执行此操作,比以下序列更快:
作为参考,假设我可以使用大量的核心(数百个)和大约 200G 的内存。