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

pandas DataFrame执行过滤代码后未永久删除含指定字符串行的问题

问题原因

你运行的筛选逻辑仅会返回符合条件的DataFrame副本,不会修改原始的df对象,所以执行后查看原df不会有变化。

解决方法

方法1:赋值覆盖原对象

这是最常用的写法,直接把筛选后的结果赋值给原变量即可:

# 基础写法,na=False用于处理列中存在NaN时的报错问题
df = df[df["column"].str.contains('text', na=False) == False]
# 更简洁的取反写法,~在pandas中表示布尔值取反
df = df[~df["column"].str.contains('text', na=False)]

方法2:使用drop方法直接修改原对象

通过指定inplace=True参数可以直接在原df上做修改,无需额外赋值:

# 先筛选出需要删除的行的索引
drop_idx = df[df["column"].str.contains('text', na=False)].index
# 执行删除
df.drop(drop_idx, inplace=True)

可选参数说明

如果需要调整匹配规则,可以给str.contains添加对应参数:

  • 忽略大小写匹配:添加case=False
  • 按普通字符串匹配而非正则:添加regex=False
  • 指定匹配时的编码规则:添加encoding="utf-8"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 11:30:01