可以使用shift和rolling
函数
替代apply和rolling组合。这将允许您在不影响结果的情况下快速计算rolling操作。以下是一个示例代码:
import pandas as pd
# 生成示例数据
df = pd.DataFrame({'group': ['A', 'A', 'B', 'B'], 'value': [1, 2, 3, 4]})
# 使用apply和rolling组合
result1 = df.groupby('group').apply(lambda x: x.rolling(window=2, min_periods=1).sum())
# 使用shift和rolling替代apply和rolling组合
result2 = df.groupby('group').apply(lambda x: (x + x.shift(1)).rolling(window=2, min_periods=1).sum())
在上述示例中,result1使用apply和rolling组合计算groupby,而result2使用shift和rolling替代apply和rolling组合。使用result1和result2作对比可以看到,二者的结果是一样的,但是result2的计算速度更快。