关于Pandas中DataFrame.apply方法args参数使用的两类问题咨询
问题1解答
args=(,50)触发语法错误和apply方法无关,这是Python元组的语法规则导致的:
- 定义元组时,单个元素的元组必须写成
(元素,)的形式(末尾加逗号),比如(50,); - 空元组是
(),但(,50)这种写法完全不符合元组的定义规范,不管在任何场景下写都会直接抛出SyntaxError,并不是apply限制了参数的位置。
问题2解答
这是因为Series.apply()的参数传递逻辑:
- apply会自动把Series中的每个元素作为第一个参数传给你定义的
apply_age函数; - 当你传入
args=(50,2)时,这两个值会作为额外参数跟在自动传入的元素后面,相当于调用apply_age(x, 50, 2); - 但你的
apply_age函数只定义了x和bias两个参数,无法接收第三个参数,因此抛出参数数量不匹配的TypeError。
内容的提问来源于stack exchange,提问作者Tony Lin
相关产品推荐
相关产品推荐

