pandas如何按逗号拆分单行数据为多行并移除image列方括号及单引号
解决方案
原代码失效原因
data['image'].replace("[]'", '')默认执行全值匹配,仅当单元格内容完全等于[]'时才会触发替换,无法替换内容中的子字符串- 多个特殊字符的批量替换需要开启正则匹配模式
完整实现代码
如果你的image列存储的是字符串格式的列表(就是你示例中带方括号、单引号的格式),直接执行以下代码即可:
import pandas as pd # 1. 移除image列所有方括号、单引号 data['image'] = data['image'].str.replace(r"[\[\]']", '', regex=True) # 2. 按逗号分割为列表,同时清除每个链接首尾的空白 data['image'] = data['image'].str.split(',').apply(lambda urls: [url.strip() for url in urls]) # 3. 将image列的列表拆分为多行,其余列内容自动复用 data = data.explode('image', ignore_index=True)
如果你的
image列本身就是Python原生列表类型,而非字符串形式的列表,可以跳过字符处理步骤,直接执行拆分:data = data.explode('image', ignore_index=True)
执行完成后你可以输出前几行验证拆分效果:
print(data.head())
内容的提问来源于stack exchange,提问作者boyenec
相关产品推荐
相关产品推荐

