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

如何用Pandas与RegEx删除DataFrame中含链接的整行数据?

Pandas删除包含链接行的正确方法

你的原代码问题出在自定义函数cleanLinks里的index(col)用法错误——col是source列的单个字符串元素,根本没有index方法,而且这种方式也没法正确标记要删除的行索引。

针对8000行的数据集,用Pandas内置的字符串方法更高效,直接通过布尔掩码就能完成需求,两种可行方法如下:

方法1:直接过滤保留目标行

通过str.contains匹配包含链接的行,用~取反得到不包含链接的行,直接赋值给原DataFrame:

# 确保导入了必要库
import pandas as pd

# 保留source列不包含http链接的行
df = df[~df['source'].str.contains(r'http\S+', na=False)]

方法2:直接删除指定行

先定位包含链接的行索引,再用drop删除:

# 定位包含链接的行索引
rows_to_drop = df[df['source'].str.contains(r'http\S+', na=False)].index
# 删除这些行(inplace=True表示原地修改原DataFrame)
df.drop(rows_to_drop, inplace=True)

参数说明

  • r'http\S+':正则表达式,匹配所有以http开头的连续非空白字符(也就是完整的链接)
  • na=False:处理缺失值,将NaN值视为不包含链接,避免因缺失值引发报错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 05:40:40