我不能共享很多代码,但是我正在使用条件语句,然后将函数传递给数据帧中的列。我收到数据库错误(<cx_Oracle._Error object at 0x00000114A0BE38D0>
,'occurred at index 880')
。
def my_new_func(row):
return RCCheck.nsamcheck(
sk=row['sk'], reportseries=row['reportseries'], rssd=row['rssd'], username=username, pw=password)
NSAM.loc[(NSAM['Security_Description']=='Update External User - Reporting') & (NSAM.Analyst.isin(analyst_list)), 'Action'] = NSAM.apply(my_new_func, axis=1)
错误消息指示索引880存在问题,索引880是我的数据帧的第一行,但没有上面的布尔索引中表达的条件。我的问题是为什么将函数应用于我的整个数据帧而不是我要过滤的函数?
弄清楚了:
NSAM['Action'] = NSAM.loc[(NSAM['Security_Description'] == 'Update External User - Reporting') & (NSAM.Analyst.isin(analyst_list))].apply(my_new_func, axis=1)
在我的原始代码中,我说了NSAM.apply(my_new_func,axis = 1)。我正在调用整个数据框以将功能应用到该版本,而不是过滤的版本。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句