将参数传递给 Pandas Dataframe apply 函数的语法
Syntax for Passing Args to a Pandas Dataframe apply function
我的问题是:
http://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.apply.html#pandas.Series.apply。
如果你有
def subtract_custom_value(x, custom_value):
return x-custom_value
然后
series.apply(subtract_custom_value, args=(5,))
有效,但无效
series.apply(subtract_custom_value, args=(,5))
都没有
series.apply(subtract_custom_value, args=(5))
我不明白他们为什么选择这种语法,因为在 "substract_custom_values" args 的顺序中,5 实际上匹配 "custom_value",而不是 x,它是 "Series" 通过 "apply"函数。
因此我想知道为什么他们选择更改顺序以使 custom_value 在 args 中排在第一位,以及为什么末尾需要逗号(不添加逗号会破坏语法)。
提前致谢
他们没有选择那样的东西。正如您链接的文档中所述, args
应该是一个元组。使用元组(或另一种可迭代对象)它可能会起作用,前提是其元素的数量和类型合适。使用不可迭代的东西,它不会工作。使用无效的 python 语法,你会得到一个语法错误。 Python一切如常。
现在关于你的例子:
(5,)
是一个只有一个元素的元组。
(,5)
是无效的 python 语法,pandas 对此无能为力。
(5)
求值为数字,而不是元组。
我的问题是: http://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.apply.html#pandas.Series.apply。
如果你有
def subtract_custom_value(x, custom_value):
return x-custom_value
然后
series.apply(subtract_custom_value, args=(5,))
有效,但无效
series.apply(subtract_custom_value, args=(,5))
都没有
series.apply(subtract_custom_value, args=(5))
我不明白他们为什么选择这种语法,因为在 "substract_custom_values" args 的顺序中,5 实际上匹配 "custom_value",而不是 x,它是 "Series" 通过 "apply"函数。
因此我想知道为什么他们选择更改顺序以使 custom_value 在 args 中排在第一位,以及为什么末尾需要逗号(不添加逗号会破坏语法)。
提前致谢
他们没有选择那样的东西。正如您链接的文档中所述, args
应该是一个元组。使用元组(或另一种可迭代对象)它可能会起作用,前提是其元素的数量和类型合适。使用不可迭代的东西,它不会工作。使用无效的 python 语法,你会得到一个语法错误。 Python一切如常。
现在关于你的例子:
(5,)
是一个只有一个元素的元组。(,5)
是无效的 python 语法,pandas 对此无能为力。(5)
求值为数字,而不是元组。