在DataFrame中使用apply时如何传递参数

2024-10-06 12:05:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我想沿着一列apply一个函数,例如coco.convert,并将参数to = 'ISO3'与行中的值一起传递给它

df['alpha-3'] = df['Country'].apply(coco.convert('ISO3'))

缺少1个位置参数:

TypeError: convert() missing 1 required positional argument: 'names'

但是

df['alpha-3'] = df['Country'].apply(coco.convert)

工作正常(我假设它使用默认值)

我如何在这里传递位置参数

还有,这里到底发生了什么-有人能解释一下函数是如何传递给apply的吗


Tags: to函数alphaconvertdf参数requiredargument
1条回答
网友
1楼 · 发布于 2024-10-06 12:05:38

解决这个问题的最正常的方法可能是使用**kwds.apply参数,该参数包含在apply documentation中。基本上,您只需将任何其他命名参数传递给.apply(),它就会将它们与传递的函数一起使用

df['alpha-3'] = df['Country'].apply(coco.convert, to='ISO3')

另一种方法是使用预先传递的参数定义自己的新函数,如下所示

def my_fun(x):
    return coco.convert(names = x, to = 'ISO3')

df['alpha-3'] = df['Country'].apply(my_fun)

向你的另一半介绍如何应用

  1. 获取您提供的数据列,并循环遍历每个元素
  2. 对于每个元素,将其值作为*第一个输入到提供的函数中
  3. 对于该函数的每次返回,将其转换为另一个系列

相关问题 更多 >