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

Pandas中使用正则负前瞻筛选不含_y列失败问题排查

Pandas筛选不含"_y"列的正则问题

你使用的正则表达式(?!_y)逻辑有误,导致filter返回了整个DataFrame。

问题原因

(?!_y)是正向否定预查,它仅检查"当前位置的后续字符不是'_y'",而非判断整个列名是否包含'_y'。比如列名col2_y,开头字符c的后续不是'_y',这个列名就会被正则匹配到,最终所有列都被保留。

正确写法

方法1:修正正则表达式

使用能覆盖整个列名的正则,确保字符串中不存在'_y'子串:

dat1.filter(regex=r"^((?!_y).)*$")

方法2:更直观的列筛选方式

用str.contains配合取反操作,逻辑更清晰:

dat1.loc[:, ~dat1.columns.str.contains('_y')]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 03:47:04