标签: bodo

pandas:使用 numba 进行 groupby 应用

使用pandas v1.1.0。

在 pandas 文档中有一个关于如何使用 numba 来加速rolling.apply()操作的很好的例子

import pandas as pd
import numpy as np

def mad(x):
    return np.fabs(x - x.mean()).mean()

df = pd.DataFrame({"A": np.random.randn(100_000)},
                  index=pd.date_range('1/1/2000', periods=100_000, freq='T')
).cumsum()

df.rolling(10).apply(mad, engine="numba", raw=True)
Run Code Online (Sandbox Code Playgroud)

我想将其调整为适用于 groupby 操作:

df['day'] = df.index.day
df.groupby('day').agg(mad)
Run Code Online (Sandbox Code Playgroud)

工作正常。

df.groupby('day').agg(mad, engine='numba')
Run Code Online (Sandbox Code Playgroud)

错误并给出

---------------------------------------------------------------------------
NumbaUtilError                            Traceback (most recent call last)
<ipython-input-21-ee23f1eec685> in <module>
----> 1 df.groupby('day').agg(mad, engine='numba')

~\AppData\Local\Continuum\anaconda3\envs\ds-cit-dev\lib\site-packages\pandas\core\groupby\generic.py in aggregate(self, func, engine, engine_kwargs, *args, **kwargs)
    939 
    940         if maybe_use_numba(engine):
--> 941             return self._python_agg_general(
    942                 func, *args, …
Run Code Online (Sandbox Code Playgroud)

python group-by pandas numba bodo

6
推荐指数
1
解决办法
5295
查看次数

标签 统计

bodo ×1

group-by ×1

numba ×1

pandas ×1

python ×1