【发布时间】:2016-11-11 14:59:54
【问题描述】:
Series.apply()使用输入对应关系映射 Series 的值(可以是 dict、Series 或函数)
对 Series 的值调用函数。可以是 ufunc(适用于整个系列的 NumPy 函数)或仅适用于单个值的 Python 函数
apply() 似乎几乎完成了map() 所做的所有事情,在应用矢量化操作的同时矢量化标量函数。同时map() 允许对空值处理进行一定程度的控制。除了与 Python 的 apply() 和 map() 函数的历史类比之外,在一般使用中是否有理由更喜欢其中一个?为什么不把这些功能组合起来呢?
【问题讨论】:
-
afaik Series.map(func) 无法将其他参数传递给 func。当您使用 Series.apply(func) 时,您可以执行 sr.apply(func, convert_dtype=True, arg2='foo', arg3=True),并且 Series.apply() 无法识别的任何关键字参数都是传递给 func,在本例中为 arg2='foo' 和 arg3=True。
-
@xg.plt.py 另一个问题的上下文是数据帧而不是系列对象(因此在这种情况下相似性更深)
标签: python numpy vectorization