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

从Pandas单行单元格提取指定首尾的多字符串并转为列

解决Pandas提取HTML中特定URL并生成多列的问题

原代码失效原因

你写的正则里用了^和$锚点,这两个符号要求整行内容完全匹配目标URL格式,但实际目标URL只是HTML字符串里的一段子内容,所以根本匹配不到任何结果,自然返回空值。

修正方案

1. 正确提取URL列表

先去掉正则里的锚点,同时用非贪婪匹配.*?避免把多个URL连在一起提取:

import pandas as pd

# 提取每行中所有符合条件的URL,得到列表格式的列
df['img_list'] = df['Images'].str.findall(r'https://www.website.com.my/media/catalog/product/cache/3f354f4955006fba9bb013076742094d.*?\.jpg')

2. 将列表展开为单独列

把提取到的URL列表拆分成多列,每列对应一个URL,最后合并回原DataFrame:

# 将列表列转换为多列
img_cols = df['img_list'].apply(pd.Series)
# 给新列命名为img_1、img_2...
img_cols.columns = [f'img_{idx+1}' for idx in img_cols.columns]
# 合并原DataFrame和新列
df = pd.concat([df, img_cols], axis=1)
# 可选:删除临时的img_list列
df.drop('img_list', axis=1, inplace=True)

这样处理后,每行提取到的URL会分别放在img_1、img_2等列中,没有URL的位置会显示NaN。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 02:05:24