如何在Python/Pandas中移除字符串至特定字符前的内容?
问题
我有如下DataFrame:
link = [{'name': 'http://website.com/product76tre53932'}, {'name': 'http://website.it/productiee8340'}, {'name': 'http://website.de/productooi7309'}] df = pd.DataFrame(link)
请问如何对其中的name列值进行截取处理,得到df['name_2']列的预期结果(即提取每个URL中product之后的字符)?
处理方法
方法1:字符串分割法
直接按固定字符串product分割,取分割后的第二部分:df['name_2'] = df['name'].str.split('product').str[1]优点:简单直观,适合所有URL都包含
product前缀的场景。方法2:正则表达式提取法
用正则精准匹配product后面的字符,灵活性更强(比如兼容product大小写变化等情况):df['name_2'] = df['name'].str.extract(r'product(\w+)', expand=False)正则
r'product(\w+)'会匹配product后的所有字母数字字符,提取括号内的内容作为结果。方法3:路径分段处理法
先截取URL最后一段(斜杠后的内容),再去掉product前缀:df['name_2'] = df['name'].str.split('/').str[-1].str.replace('product', '')
运行上述任意一种方法后,都会得到预期的name_2列,结果分别为76tre53932、iee8340、ooi7309。
内容的提问来源于stack exchange,提问作者LiAfe
相关产品推荐
相关产品推荐

