Pandas 将定义的函数应用于表中不同范围的行

Pandas 将定义的函数应用于表中不同范围的行,pandas,Pandas,我有一个像这样的df,有很多行: BB AA FF 2 5 0 3 7 A 6 5 A 9 6 A 8 3 0 还有这样一个函数: def test(a,b): # a=array col AA # b=array col BB return (a*b)+a 我希望FF列中

我有一个像这样的df,有很多行:

    BB      AA    FF        
     2      5      0    
     3      7      A
     6      5      A
     9      6      A
     8      3      0
还有这样一个函数:

def test(a,b):
    # a=array col AA
    # b=array col BB
    return (a*b)+a
我希望FF列中的行的值为!=0对涉及列BB和AA的df切片数组应用函数测试,以在新列ZZ中生成以下输出:

    BB      AA    FF   ZZ      
     2      5      0   0 
     3      7      A   28
     6      5      A   35
     9      6      A   51
     8      3      0   0
我的想法是:

df['zz']= df.apply(lambda x: test(df.AA,df.BB) for the range of values among zero)
但我的问题是,我不确定如何在FF列中指定de数组来应用您可以使用+的列:

或者您可以使用lambda函数:


请核对我的答案
def test(x):
    return (x[0]*x[1])+x[0]
df['ZZ']=df[['AA','BB']].apply(test,axis=1).mask(df['FF'].eq('0'),0)
print(df)
   BB  AA FF  ZZ
0   2   5  0   0
1   3   7  A  28
2   6   5  A  35
3   9   6  A  60
4   8   3  0   0
df['ZZ']=df.apply(lambda x: x[['BB','AA']].prod()+ x['AA'] if x['FF'] != '0' else x['FF'],axis=1)
print(df)
   BB  AA FF  ZZ
0   2   5  0   0
1   3   7  A  28
2   6   5  A  35
3   9   6  A  60
4   8   3  0   0