您好,并感谢您的所有阅读/回复,
我正在用Python构建一个报表,该报表使用函数从外部计算源中提取数据,然后对提取的数据进行算术运算,作为报表中的新列。
有时候,数据提取会返回一个以“ ERROR”开头的字符串,而不是数字,这会使后续的算术代码崩溃。
要解决此问题,我将该函数称为列(不应用算术),遍历该列以检查是否有任何“ ERROR”值,将“ ERROR”值替换为0,然后将算术用作替换项转到旧列(如下所示)。
df['column1'] = df.apply(some_function)
df.loc[df.column1.astype(str).str.contains('ERROR', na=False), 'COMMENTS'] = df['column1']
df.loc[df.column1.astype(str).str.contains('ERROR', na=False),'column1'] = 0.0
df['column2']=column1*50
但这仅适用于单列,并且每次必须对所有列(调用不同的函数)重复一次。我正在尝试一种更优雅的循环或异常处理解决方案,如果遇到“错误”,该脚本不会使脚本崩溃,而是返回0继续运行代码并创建列。
df['column1'] = df.apply(some_function)*50
df['column2'] = df.apply(some_function2)*100