Python 使用apply向现有dataframe添加2个新列

Python 使用apply向现有dataframe添加2个新列,python,pandas,dataframe,apply,Python,Pandas,Dataframe,Apply,我想使用apply函数: -将2列作为输入-基于函数输出两个新列 这个加法乘法函数就是一个例子 #具有两列输入和两个输出的功能 def加法乘法(a,b): 返回(a+b,a*b) #示例数据帧 df=pd.DataFrame({'col1':[1,2],'col2':[3,4]}) #这不管用 df[['add','multiply']]=df.apply(λx:add_multiply(x['col1'],x['col2']),轴=1) 理想结果: col1 col2加法乘法 1 3

我想使用apply函数: -将2列作为输入-基于函数输出两个新列

这个加法乘法函数就是一个例子

#具有两列输入和两个输出的功能
def加法乘法(a,b):
返回(a+b,a*b)
#示例数据帧
df=pd.DataFrame({'col1':[1,2],'col2':[3,4]})
#这不管用
df[['add','multiply']]=df.apply(λx:add_multiply(x['col1'],x['col2']),轴=1)
理想结果:

col1 col2加法乘法
1     3     4    3
2     4     6    8

您可以在
应用中添加
结果\u type='expand'

“展开”:类似列表的结果将转换为列

或调用数据帧构造函数:

df[['add', 'multiply']]=pd.DataFrame(df.apply(lambda x: add_multiply(x['col1'], 
                                    x['col2']), axis=1).tolist())


anky_91的回答突出了
apply
中的一个有用选项

然而,对于这种特殊情况,
apply
甚至不是必需的

df['add'], df['multiply'] = add_multiply(df['col1'],df['col2'])
   col1  col2  add  multiply
0     1     3    4         3
1     2     4    6         8
df['add'], df['multiply'] = add_multiply(df['col1'],df['col2'])