【发布时间】:2019-12-10 19:03:54
【问题描述】:
如何将自定义函数应用于两个数据框? .apply method 似乎迭代给定数据帧的行或列,但我不确定如何一次在两个数据帧上使用它。例如,
df1
m1 m2
x y x y z
0 0 10.0 12.0 16.0 17.0 9.0
0 10.0 13.0 15.0 12.0 4.0
1 0 11.0 14.0 14.0 11.0 5.0
1 3.0 14.0 12.0 10.0 9.0
df2
m1 m2
x y x y
0 0.5 0.1 1 0
一般来说,df1到df2的映射函数如何生成新的df3。例如,乘法(但我正在寻找一个可以发送到函数的通用解决方案)。
def custFunc(d1,d2):
return (d1 * d2) - d2
df1.apply(lambda x: custFunc(x,df2[0]),axis=1)
#df2[0] meaning it is explicitly first row
df3 是
m1 m2
x y x y z
0 0 5.5 1.3 16.0 0.0 9.0
0 5.5 1.4 15.0 0.0 4.0
1 0 6.0 1.5 14.0 0.0 5.0
1 2.0 1.5 12.0 0.0 9.0
【问题讨论】: