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

如何在Pandas DataFrame中删除含指定字符的行并生成独立新表

Pandas 筛选后生成独立数据框解决方案

你遇到的两个问题可以通过增加两个方法调用解决:

  • 要生成完全独立于原df的新数据框(非视图),需要在筛选逻辑后加.copy()强制生成深拷贝
  • 要解决索引跳空的问题,调用.reset_index(drop=True)重置为从0开始的连续索引

优化后的完整代码

df2 = df[~df[6].str.contains("\?", na=False)].copy().reset_index(drop=True)

参数说明

  • ~ 是pandas中的逻辑取反运算符,和你原写法的==False逻辑完全等价,是更通用的写法
  • na=False 用来处理第6列存在空值的场景:遇到空值时默认返回False,避免空值导致筛选逻辑报错
  • .copy() 强制生成深拷贝,新生成的df2和原df完全独立,修改其中一个不会影响另一个
  • reset_index(drop=True) 重置行索引为连续整数,drop=True表示丢弃原来的旧索引,不会将其作为新列加入数据框

如果你需要保留原来的行索引,不需要重置连续索引,仅要独立副本可以用以下代码:

df2 = df[~df[6].str.contains("\?", na=False)].copy()

注:你之前观察到的索引跳空不是视图导致的,是pandas筛选操作的默认行为:筛选后会保留原数据框的行索引,就算是深拷贝对象如果不主动重置索引也会出现跳空情况。

原问题参考数据框样式

数据框示例

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 06:09:03