【发布时间】:2021-02-09 22:55:22
【问题描述】:
总的来说,我对 Python 和 Pandas 还很陌生。
我有两个 .CSV,我已将它们加载到 pandas 中的单独数据框中。 df1 包含 9 列,但我只关心最后一列,“错误消息文本”,它是一个包含错误详细信息的文本字符串。在 df2 上,我有一个名为“短错误消息文本”和“错误代码”的列
df2 上的错误消息是 df1 中可能包含的内容的清理版本,我正在尝试在 df1 上进行部分文本匹配,id 给出的错误代码与 df2 上的短错误匹配,然后在新专栏,给我引用的相应代码。由于数据不完全匹配,我无法在此处进行合并或加入。也许一些软模糊匹配?我可以在 excel 中使用与数组的索引匹配来完成此操作。
以下是我正在查看的示例:
df1: ...,第 9 栏 “这是error5错误” “这个东西因为用户错误而坏了” “后端有问题”
df2: 短消息,代码 “错误5”,1 “用户错误”,2 “后端”,3
期望的结果: df1: 专栏9 "这是 error5 错误",1 “这个东西因为用户错误而坏了”,2 “后端”,3
如果匹配,则返回代码。如果不是,则返回一个默认值,如代码 0。
有什么想法吗?感觉自己找了一天也想不出来。
【问题讨论】:
-
如果您有一个可重复性最低的问题,您将获得更快/更好的答案。尝试制作一个示例数据框,例如
df = pd.DataFrame(list(zip([1, 1.5, 3.1, 3.4], [1, -3, 2, 8])), columns=['x', 'y']),然后在 Excel 中根据示例数据框快速制作您想要的示例,并发布其屏幕截图。 -
在您的示例中,short_message 代码是单字的。您在寻找精确匹配吗?如,如果 'error5' 在
中,那很好,但您是否也在根据 'error5' 短消息寻找匹配 'error 5' 和 'ERROR5' 和 'error_5' ?