我正在熊猫数据框中形成一个新列,我想输入操作系统的简称。 我正在使用正则表达式,需要精确匹配单词以从选择中排除,但是当我将正则表达式更改为不选择单词时,它会停止精确匹配。我在这里读了尽可能多的正则表达式精确匹配单词的文章,但没有一个解决方案是有效的
例如,我有如下数据:
Android 10kdsh
Chrome OS
Linux ddk2
OS X 10.
Windows 7
iOS c
我希望它看起来像这样:
Android
Chrome
Linux
OS X
Windows
iOS
我尝试了如下代码:
def short_OS(webchat):
webchat["OS"] = webchat["Operating System"].str.replace(('[^(Android|^OS X|^Chrome|^Linux|^Windows|^iOS)]'),"", regex = True)
return webchat
但这会留下一些角色作为离开:
Androiddsh
ChromeOS
Linuxdd
OS X
Windows
iOS
显然,以上只是一些例子,但一些字符留在文字中的原则是相同的
我应该注意到,用\b框住单词不会改变结果。如果我使用$作为字符串的结尾,在“Android”的例子中,它仍然将“10kdsh”保留在同一行中
有人能帮忙吗
多谢各位
使用@TheFirst bird的方法,我使用以下代码解决了这个问题:
需要在单词周围添加/b以捕获准确的单词
您可以将其中一个选项与新列进行匹配,而不是替换
输出
相关问题 更多 >
编程相关推荐