我的问题在这里: 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,即通过“apply”函数提供的“Series”。
因此我想知道为什么他们选择更改顺序以便custom_value首先出现在args中,以及为什么最后需要逗号(不添加它会破坏语法)。
先谢谢
答案 0 :(得分:3)
他们没有选择那样的东西。正如您链接的文档中所述,reverseTransform()
应该是一个元组。使用元组(或其他类型的可迭代)并且如果元素的数量和类型合适,它可能会起作用。使用不可迭代的东西,它将无法工作。使用无效的python语法,您将收到语法错误。 Python照常营业。
现在关于你的例子:
args
是一个包含一个元素的元组。(5,)
不是有效的python语法,大熊猫没有什么可以做的。(,5)
评估为数字,而不是元组。