如何以“高效”的方式在Dask中执行以下操作:
我的dask数据框有'Date'(日期时间),'MAC'(类别)和'ID'(int)列已经按日期排序,我希望得到一个带有timedeltas的新列到达对给定mac地址的http请求。
在pandas中,我会做以下事情:设置一个多索引['ID','MAC'],然后使用df['Date'].diff(1)
构建一个新列'Timedelta'。似乎不支持多索引,因此无法再现相同的解决方案。重要的一点是,必须在给定请求之间为相同的MAC执行差异,并且以下是记录器(按日期排序)。
答案 0 :(得分:3)
您可以使用groupby-apply执行此操作吗?这将导致洗牌(这有点慢),但应该完成工作。
df.groupby('MAC').apply(lambda df: df.assign(diff=df.Date.diff(1))
我实际上并没有这样做,所以我希望这需要调整。