通常是因为工作函数期望接受一个迭代器作为输入,但是在调用apply函数时,传入的参数是一个整数或标量值。为避免这种错误,需要在调用apply函数时明确将参数打包成元组。例如:
def my_func(x,y): # 执行一些操作 return x2 + y2
import pandas as pd
df = pd.DataFrame({'x': [1, 2, 3], 'y': [4, 5, 6]}) result = df.apply(lambda row: my_func(*row), axis=1)
在这个示例中,我们定义了一个函数my_func,它接受两个参数,并返回它们的平方和。然后我们创建了一个包含两列数据的DataFrame。在调用apply函数时,我们使用了lambda表达式来调用my_func,并将row打包成元组。这样就能避免TypeError错误。最终,result将包含my_func应用于每一行数据的结果。