我有一个来自测试回归失败的 csv 错误消息,我正在将它导入到 Pandas 数据帧中,但我想找到一些与异常有关的子字符串,特别是。我用 .csv 的内容填充我的数据框,如下所示:df = pd.read_csv('ErrorMessage3.csv', header=None, sep=',', names=['ErrorMessage'])我有以下正则表达式和相应的测试字符串(这是我的错误消息数据框列中的第一个条目),它完全返回我想要的内容:teststring = "Step 13 - Iteration 1 Failed: Action: <Update Latest CC Exp Date Record from Epay Account {DBServer;UserName;Password='', DatabaseName='',Year Offset='-10'}> ---> System.Data.SqlTypes.SqlNullValueException: Data is Null. This method or property cannotbecalled on Null values. ---> System.Data.SqlTypes.SqlNullValueException2: Data is Null."re.findall(r"---> ([^:]+): ", teststring)这导致以下输出:['System.Data.SqlTypes.SqlNullValueException', 'System.Data.SqlTypes.SqlNullValueException2']但我希望能够将其添加为数据框中的“例外”列。我认为这会奏效:df['Exceptions'] = df['ErrorMessage'].str.extract(r"---> ([^:]+): ")但是当我运行它时,我添加了“异常”列,但所有行都添加了 NaN。我验证了我的 ErrorMessage 是对象类型,并且我使用了在线正则表达式测试器来验证至少我的 ErrorMessage 条目的子集确实包含与我的正则表达式匹配的异常。我已经阅读了一些看起来非常相似的其他堆栈溢出问题,但我运气不佳。为什么将正则表达式应用于数据帧会产生 nan,但将其应用于单个字符串会返回我想要的结果?
添加回答
举报
0/150
提交
取消