首页 > 解决方案 > 将用户定义的函数应用于熊猫数据框的特定列并将新列添加到数据框

问题描述

我创建了一个名为的函数polar(X_relative , Y_relative , Z_relative),它采用如图所示的这 3 个参数,结果是新参数,即(azimuth_angle , tilt_angle). 我想将此函数应用于pandas数据帧,其中函数参数是数据帧中的某些列,并希望将函数的输出参数添加为(azimuth_angle , tilt_angle)数据帧中为每一行计算函数的新列。

dataframe columns: X , Y, Z , X_relative , Y_relative , Z_relative
dataframe coulmns I expect after applying the function: X , Y, Z , X_relative , Y_relative , Z_relative , azimuth_angle , tilt_angle

标签: pythonpandasfunction

解决方案


将返回包装polar成一个系列:

return pd.Series([azimuth_angle, tilt_angle]) 

然后使用apply

df[['azimuth_angle', 'tilt_angle']] = df.apply(lambda x: polar(x.X_relative, x.Y_relative, x.Z_relative), axis = 1)

推荐阅读