我想知道是否有更快的方法在熊猫中运行 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,几乎如图所示,但这需要几分钟。有没有办法让它更快?
谢谢!