Currently Pandas users can select engine="numba"with certain APIs that accept UDFs, such as groupby.transform and the user defined function will be JIT compiled. While this can offer some performance improvements for UDFs that work solely on Numpy arrays, Numba does not have support for any of the Pandas API and cannot handle Pandas Array Extensions.
Bodo is alternative compute engine that has native JIT capabilities for many components of the Pandas API, including Series, DataFrame, and Array Extensions. We want to allow the option for users to select engine="bodo" if they would like Bodo to optimize their user defined function. Because of Bodo's Pandas support, the JIT engine option can be supported in more places like DataFrame.apply as well.
df.apply(lambda r: r.A == 0, axis=1, engine='bodo')
Currently Pandas users can select
engine="numba"with certain APIs that accept UDFs, such as groupby.transform and the user defined function will be JIT compiled. While this can offer some performance improvements for UDFs that work solely on Numpy arrays, Numba does not have support for any of the Pandas API and cannot handle Pandas Array Extensions.Bodo is alternative compute engine that has native JIT capabilities for many components of the Pandas API, including Series, DataFrame, and Array Extensions. We want to allow the option for users to select
engine="bodo"if they would like Bodo to optimize their user defined function. Because of Bodo's Pandas support, the JIT engine option can be supported in more places likeDataFrame.applyas well.