首页  >  文章  >  后端开发  >  在 Pandas DataFrame 中创建新列哪种方法更快:Pandas Apply 或 NumPy Vectorize?

在 Pandas DataFrame 中创建新列哪种方法更快:Pandas Apply 或 NumPy Vectorize?

Linda Hamilton
Linda Hamilton原创
2024-10-26 14:40:03695浏览

Which Method is Faster for Creating New Columns in a Pandas DataFrame: Pandas Apply or NumPy Vectorize?

Pandas apply 与 NumPy vectorize 在创建列时的性能注意事项

虽然 Pandas apply 被广泛使用,但在创建列时其性能落后于 NumPy vectorize来自现有列的新列。这种差异归因于这样一个事实:apply 函数是 Python 级别的循环,会产生大量开销。相比之下,向量化将输入函数转换为通用函数,显着提高了效率。

性能基准

比较Python级别的循环并应用raw=True,我们观察:

  • 使用 zip 进行映射、列表理解和矢量化表现出相似的性能。
  • 使用 raw=True 的应用比不使用 raw=True 的速度显着更快。

真正的向量化

但是,apply 和 vectorize 都被真正的向量化操作(例如 np.where)所掩盖,这些操作在 NumPy 数组上按元素执行计算。这种方法速度明显更快,无需循环。

进一步的性能注意事项

对于关键瓶颈,请考虑 numba,这是一个将 Python 函数编译为高度优化的 C 语言的工具代码。使用 numba,可以进一步加速计算。

结论

当从现有列创建新列时,NumPy 矢量化由于其原生矢量化而提供了比 Pandas apply 更优越的性能能力。为了获得最佳效率,应在适用的情况下采用真正的矢量化。

以上是在 Pandas DataFrame 中创建新列哪种方法更快:Pandas Apply 或 NumPy Vectorize?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn