You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python的Pandas中从URL提取用户ID?(数据框含105万行)

提取Googleusercontent URL中的用户ID(百万行Pandas数据框处理)

问题场景

现有一个包含1,050,000行的Pandas数据框,UserImage列存储三种格式的Googleusercontent图片URL,需要从中提取出用户ID生成UserIDs列:

原始URL示例:

UserImage
    https://play-lh.googleusercontent.com/a/AItbvmkI4RoZOTFftgRqwJ0QVl-OqLw0PXFRQsQmzPwayQ=mo
    https://play-lh.googleusercontent.com/EGemoI2NTXmTsBVtJqk8jxF9rh8ApRWfsIMQSt2uE4OcpQqbFu7f7NbTK05lx80nuSijCz7sc3a277R67g
    https://play-lh.googleusercontent.com/a-/AFdZucpr-V6JJAWHdTjxYVPa15fmQC7pWl5Xd5StFt1E'

期望结果:

UserIDs
AItbvmkI4RoZOTFftgRqwJ0QVl-OqLw0PXFRQsQmzPwayQ
EGemoI2NTXmTsBVtJqk8jxF9rh8ApRWfsIMQSt2uE4OcpQqbFu7f7NbTK05lx80nuSijCz7sc3a277R67g
AFdZucpr-V6JJAWHdTjxYVPa15fmQC7pWl5Xd5StFt1E

高效解决方法

针对百万级数据量,推荐使用正则表达式结合Pandas的str.extract方法,既能统一处理三种URL格式,又能保证处理效率:

import pandas as pd

# 假设数据框名为df
df['UserIDs'] = df['UserImage'].str.extract(r'play-lh.googleusercontent.com/(?:a/|a-/)?([^=\']+)', expand=False)

正则表达式说明

  • play-lh.googleusercontent.com/:匹配固定域名部分
  • (?:a/|a-/)?:非捕获组,匹配可选的a/或a-/前缀,?表示该部分可出现0或1次
  • ([^=\']+):捕获组,匹配所有不是=或'的字符,这就是我们要提取的用户ID

补充处理细节

如果存在URL前后有空格的情况(比如示例中的缩进空格),可以先做清洗:

df['UserImage'] = df['UserImage'].str.strip()

内容的提问来源于stack exchange,提问作者Mystic

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 21:55:26