正如标题所示,我想更好地了解使用应用于数据帧的自定义函数在速度方面的局限性。例如:
df.apply(custom_function)
文档及其相关内容(http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.apply.html)在主题上有点狡猾只是简单地将此功能视为根据所使用的功能使其变慢。因为我不知道这个矢量化是如何发生的 - 因此渲染我的函数的分析是一个耗时的尝试重复的事情,有人可能指出一些关于什么样的东西的经验法则: 1)不降低速度 2)大大减慢整个过程
更确切地说:如果在函数中,我将东西保存在其他地方,我是否会受到严重损坏?
答案 0 :(得分:1)
我认为自定义函数减慢Pandas速度的主要原因是内置方法是在Cython(C-Extensions for Python)中实现的。你将使用的任何纯粹pythonic将比内置的更慢。如果你设法用于你的需求扩展也在Cython中实现,你可能会很幸运,并有相对不错的性能。根据熊猫文档“...最终的cythonized解决方案比纯python快约100倍”(http://pandas.pydata.org/pandas-docs/stable/enhancingperf.html)
通常,我会避免在apply函数中写入值。我无法想象你为什么要那样做。如果您需要有关返回系列的信息,最好在申请完成后回顾一下。