dask 中的高效排序差异

Efficient sorted diff in dask

如何在 Dask 中以 "efficient" 方式执行以下操作:

我的 dask 数据框有列 'Date'(日期时间)、'MAC'(类别)和 'ID'(整数),它们已经按日期排序,我想得到一个包含给定 mac 地址的 http 请求到达时间增量的新列。

在 pandas 中,我会执行以下操作:设置多索引 ['ID'、'MAC'],然后使用 df['Date'].diff(1)。似乎不支持多索引,因此无法重现相同的解决方案。重要的部分是,必须在给定请求和记录器(按日期排序)之间对相同的 MAC 进行比较。

您也许可以通过 groupby-apply 来做到这一点?这将导致洗牌(这有点慢),但应该完成工作。

df.groupby('MAC').apply(lambda df: df.assign(diff=df.Date.diff(1))

虽然我还没有真正做到这一点,所以我希望这需要调整。