如何解决如何在字典键上使用正则表达式的组合来实现替换功能?
我试图通过使用名称和别名的字典作为值来擦洗/取消识别某些叙事数据,以代替名称。我正在通过替换函数运行完整的数据帧,然后将字典传递给它,以便它处理数据中的所有名称。
我遇到了两个问题。第一,当在不同情况下拼写名称时,替换功能将不起作用(例如,字典中的bob在数据中找不到BOB / Bob / bOb)。这要求我在字符串前使用正则表达式'(i?)'来告诉replace函数忽略大小写。第二个问题是我不希望它替换字符串中的字符串。即,如果名称“ eve”在列表中,则我不想删除“ level”一词的一部分。我可以使用\ b作为正则表达式来解决这个问题。
我对这两个问题都有解决方案;但是,我似乎无法使它们相互配合工作。我一次只能执行一个操作,并且由于它是一个替换功能,因此我无法在另一个操作之后运行。
这是我目前正在尝试使用的代码。
fil = dict(zip(['(?i)\b'+re.escape(x)+'\b' for x in myfilth['Word']],myfilth['iden']))
df.replace(fil,inplace=True,regex=True)
注意:re.escape函数是因为名称列表正在被挖掘,并且它们偶尔具有随机的特殊字符。
以下是其中一个键值对以及fil的样例的示例
{'\x08ben\x08': ' {name-1288} '}
我可以通过什么方式使这两个表达式一起工作?或还有什么其他方法可以用来识别数据?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。