0

我在数据框中的系列上使用 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 引用的目的是它可以向下移动每一行并返回函数输出。报告系列和 rssd 因行而异。我真的不能分享更多的代码,所以我很抱歉没有分享很多。

我正在尝试做的事情可能吗?

4

1 回答 1

0

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

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)
于 2020-02-25T19:35:48.713 回答