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

Pandas如何根据另一列的URL列表删除tweet列中的对应URL子串

问题原因

你最初的代码是将整行的url列表直接转为字符串(格式类似"['url1', 'url12']"),无法和tweet文本里单独存在的url匹配,所以没有达到预期的替换效果。

正确实现方案

方案1:自定义函数实现(适配性更高)

先定义逐行处理的函数,遍历当前行的所有url逐个替换,最后清理多余空格:

def clean_tweet(row):
    cleaned = row['tweet']
    # 逐个替换当前行所有url
    for url in row['url']:
        cleaned = cleaned.replace(url, '')
    # 清理替换后产生的连续多余空格
    return ' '.join(cleaned.split())

ds['urls_free_tweet'] = ds.apply(clean_tweet, axis=1)

方案2:lambda简洁写法

如果场景中url都是以空格和其他内容分隔的,可以用更简短的写法:

ds['urls_free_tweet'] = ds.apply(
    lambda row: ' '.join([term for term in row['tweet'].split() if term not in row['url']]),
    axis=1
)

注意:如果实际场景中url可能和其他文本字符连在一起(无空格分隔),优先使用方案1的逐个replace写法。

运行以上代码后生成的urls_free_tweet列就会完全符合你给出的预期输出结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 03:54:03