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

Pandas如何对isin条件取反 筛选DataFrame不在指定列表的行

正确写法

你只需要将~放在isin()返回的布尔条件表达式最前方即可,完整代码如下:

df = {}
df['cgo_eafapo_t'] = pd.read_sql_table('cgo_eafapo_t', engine, schema_z2,
                                    columns = cols)
df['cgo_eafapo_t'] = df['cgo_eafapo_t'][~df['cgo_eafapo_t']['art_kennz'].isin(['I1','I2','I3','I4'])]

错误原因说明

你之前几种写法的报错原因分别如下:

  • 第一种写法:~放在了筛选得到的DataFrame前,~仅支持对布尔序列做取反操作,直接对DataFrame取反会触发类型不支持的报错。
  • 第二种写法:错误对['art_kennz']这个Python列表调用isin()方法,列表本身没有isin属性,只有Pandas的Series对象才有该方法,因此触发属性错误。
  • 第三种写法:~放在了DataFrame和筛选条件中间,不符合Pandas的布尔索引语法,无法正常执行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 17:36:03