pd.Series.apply 关键字参数是 pd.series

pd.Series.apply keyword arguments are are a pd.series

我在数据框中的一个系列上使用 apply 来使用具有多个关键字参数的函数。我在第一个输入(称为 sk)上使用 apply 函数,然后在我的数据帧的其他列中使用其他参数。我的申请行如下所示:

Updates['Action'] = Updates['sk'].apply(RCCheck.nsamcheck, reportseries=Updates['reportseries'],rssd=Updates['rssd'], username=username, pw=password)

我得到一个错误(函数正在查询 Oracle SQL 数据库):

DatabaseError: ORA-12801: error signaled in parallel query server P000
ORA-01722: invalid number

但是,如果我使用:

 Updates['Action'] = Updates['sk'].apply(RCCheck.nsamcheck, reportseries='abcd',rssd='1234', username=username, pw=password)

它没有问题,但是使用 pd.series 引用的目的是它可以向下移动每一行并且 return 他的函数输出。报告系列和 rssd 每行各不相同。我真的不能分享更多的代码,所以我很抱歉没有分享很多。

我想做的事情可行吗?

与其将函数应用于一系列,不如将其应用于整个数据框。

def my_new_func(row):
    return RCCheck.nsamcheck(
        reportseries=row['reportseries'], rssd=row['rssd'], username=username, pw=password
)

Updates['Action'] = Updates.apply(my_new_func, axis=1)