2

我想知道是否有更快的方法在熊猫中运行 cumsum。

例如:

import numpy as np
import pandas as pd

n = 10000000

values = np.random.randint(1, 100000, n)
ids = values.astype("S10")

df = pd.DataFrame({"ids": ids, "val": values})

现在,我想使用 id 进行分组并获取一些统计信息。例如,最大值非常快:

 time df.groupby("ids").val.max()

CPU 时间:用户 5.08 秒,系统:131 毫秒,总计:5.21 秒挂壁时间:5.22 秒

但是,cumsum 很慢:

time df.groupby("ids").val.cumsum()

CPU 时间:用户 26.8 秒,系统:707 毫秒,总计:27.5 秒挂壁时间:27.6 秒

我的问题是我需要在一个大数据集中按一个键分组的 cumsum,几乎如图所示,但这需要几分钟。有没有办法让它更快?

谢谢!

4

0 回答 0