将Args传递给Pandas Dataframe的语法应用函数

时间:2016-02-24 18:11:20

标签: python pandas syntax apply

我的问题在这里: 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中,以及为什么最后需要逗号(不添加它会破坏语法)。

先谢谢

1 个答案:

答案 0 :(得分:3)

他们没有选择那样的东西。正如您链接的文档中所述,reverseTransform()应该是一个元组。使用元组(或其他类型的可迭代)并且如果元素的数量和类型合适,它可能会起作用。使用不可迭代的东西,它将无法工作。使用无效的python语法,您将收到语法错误。 Python照常营业。

现在关于你的例子:

  • args是一个包含一个元素的元组。
  • (5,)不是有效的python语法,大熊猫没有什么可以做的。
  • (,5)评估为数字,而不是元组。