我有以下名为“places”的 df
place_name
0 "Palais et bâtiments officiels[modifier | modifier le code]"
1 "Lieux de culte renommés[modifier | modifier le code]"
2 "Vestiges gallo-romains[modifier | modifier le code]"
正如你所看到的,有一个类似的子字符串 [modifier |修饰符 le code] 在地方 [“place_name] 的所有输入中,我想删除子字符串。
我尝试了以下两种技术
places["place_name"] = places["place_name"].apply(lambda x: re.sub("\\[modifier \\| modifier le code\\]", "", x))
places["places_name"] = places["place_name"].str.replace("[modifier | modifier le code]", "", regex=False)
这些都不起作用,因为我认为问题是我试图删除的子字符串与另一个子字符串粘在一起(请注意,开头没有空格),所以我认为代码本身不会将其识别为字符串。我一直在尝试使用 split() 方法拆分它,但我遇到了同样的问题,因为我尝试删除的字符串开头没有空格。
最终输出应该是
place_name
0 "Palais et bâtiments officiels"
1 "Lieux de culte renommés"
2 "Vestiges gallo-romains"
我尝试寻找其他解决方案,但找不到任何解决方案,我知道有很多关于字符串的问题,但找不到具体的解决方案。
最佳答案
您应该使用Series.str.split
:
places["place_name"] = places["place_name"].str.split('\\[modifier').str[0]
基本上,将字符串拆分为 '[modifier'
并选择第一个值([0]
]
关于python - 删除 pandas 系列中以特定字符串开头的所有文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64738100/