Python 熊猫应用lambda返回一个元组并插入到相应的列中

Python 熊猫应用lambda返回一个元组并插入到相应的列中,python,pandas,Python,Pandas,熊猫如何应用返回的元组,其结果将被插入到相应的列中 def foo(n, m): a = n + 1 b = m + 2 return a, b df['a'], df['b'] = df.apply(lambda x: foo(x['n'], x['m']), axis=1) lambda函数中的n和m分别是获取值的列。我想从foo返回结果并插入到a和b列中 但我收到的错误消息是“太多的值无法解包(预期为2)” 我可以将返回元组存储在一个临时列中并将其拆分,但我想知

熊猫如何应用返回的元组,其结果将被插入到相应的列中

def foo(n, m):
    a = n + 1
    b = m + 2
    return a, b

df['a'], df['b'] = df.apply(lambda x: foo(x['n'], x['m']), axis=1)
lambda函数中的n和m分别是获取值的列。我想从foo返回结果并插入到a和b列中

但我收到的错误消息是“太多的值无法解包(预期为2)”


我可以将返回元组存储在一个临时列中并将其拆分,但我想知道应用程序是否能够将结果拆分为列?

result\u type='expand'
添加到列表中的列子集并将其分配给:

df = pd.DataFrame({'n':[1,2], 'm':[5,6]})

def foo(n, m):
    a = n + 1
    b = m + 2
    return a, b

df[['a','b']] = df.apply(lambda x: foo(x['n'], x['m']), axis=1, result_type='expand')
print (df)
   n  m  a  b
0  1  5  2  7
1  2  6  3  8
    

将返回的元组转换为序列

df[['a','b']] = df.apply(lambda x: pd.Series(foo(x['n'], x['m'])), axis=1)