Python从URL数据框中提取8-16位数字的方法求助
提取URL中
=后8-16位数字到DataFrame新列 因为URL参数名无固定模式,硬编码匹配特定参数的方法局限性大,使用正则表达式可以通用解决这类问题:
正则表达式说明
采用正则 (?<==)\d{8,16}(?=&|$),各部分作用:
(?<==):正向零宽断言,确保目标数字前紧跟=符号\d{8,16}:匹配连续8到16位的数字(?=&|$):正向零宽断言,确保目标数字后是参数分隔符&或URL结尾,避免捕获后续无关内容
Pandas 实现代码
import pandas as pd # 假设你的DataFrame名为df,存储URL的列名为url df["track_number"] = df["url"].str.extract(r"(?<==)\d{8,16}(?=&|$)")
效果验证
针对你提供的示例:
- 示例2的URL会提取出
279076160403(符合8-16位要求) - 示例1的URL中数字长度为22位,不符合8-16位的筛选条件,不会被提取
内容的提问来源于stack exchange,提问作者Krishiv
相关产品推荐
相关产品推荐

