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)