Replace apply With NumPy Operation¶
Sourcery refactoring id: replace-apply-with-numpy-operation
¶
Description¶
Replace apply
with a NumPy operation.
Before¶
import pandas as pd
series_ = pd.Series([5, 8, 13, 21, 34])
other = series_.apply(lambda num: num + 5)
After¶
import pandas as pd
series_ = pd.Series([5, 8, 13, 21, 34])
other = series_ + 5
Explanation¶
For numeric operations, using pandas directly gives you better performance than
apply
. The bigger your dataset, the bigger this performance gain tends to be.
This is because pandas uses fast, vectorized NumPy code, but apply
operates on
each value of your Series
or DataFrame
separately.
apply
is a versatile method, that can be used for various different use cases.
However, there's often a less verbose or more performant alternative. Try to
check out those alternatives - especially when you're working with a big
dataset.
Related Rule¶
- replace-apply-with-method-call
to use the aggregation methods of
Series
andDataFrame
instead ofapply