gpt4 book ai didi

python - 如何在两个 pandas 数据框之间应用函数

转载 作者:行者123 更新时间:2023-12-01 00:41:25 25 4
gpt4 key购买 nike

如何将自定义函数应用于两个数据框? .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

最佳答案

如果需要您的函数,只需传递 DataFrameSeries 并使用 DataFrame.loc 按行选择,最后用原始值替换缺失值是使用 DataFrame.fillna :

def custFunc(d1,d2):
return (d1 * d2) - d2

df = custFunc(df1, df2.loc[0]).fillna(df1)
print (df)
m1 m2
x y x y z
0 0 4.5 1.1 15.0 0.0 9.0
0 4.5 1.2 14.0 0.0 4.0
1 0 5.0 1.3 13.0 0.0 5.0
1 1.0 1.3 11.0 0.0 9.0

详细信息:

print (df2.loc[0])
m1 x 0.5
y 0.1
m2 x 1.0
y 0.0
Name: 0, dtype: float64

关于python - 如何在两个 pandas 数据框之间应用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57321613/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com