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

Pandas使用~.isin排除列值时报TypeError错误如何解决?

报错原因

你代码里的answerlist = ('No')本质上是字符串类型,不是你预期的元组:Python 中单个元素的元组必须在元素后加逗号,否则括号会被当做优先级运算符处理,最终得到的就是字符串'No',而isin()方法只接收列表、元组这类类列表对象,所以抛出类型错误。

解决方法

你可以任选以下任意一种方案修复:

方案1:修正answerlist为类列表对象

直接将其改为列表,或者符合要求的元组即可:

# 改为列表
answerlist = ['No']
# 或者改为合法的单元素元组
# answerlist = ('No',)
gcofilter = gcofile[~gcofile[column_a].isin(answerlist) & ~gcofile[column_b].isin(answerlist) & ~gcofile[column_c].isin(answerlist)]

方案2:单值判断简化写法

你只需要判断是否等于单个值No,完全不需要使用isin(),直接用不等于判断即可,代码更简洁:

gcofilter = gcofile[(gcofile[column_a] != 'No') & (gcofile[column_b] != 'No') & (gcofile[column_c] != 'No')]

方案3:多列批量判断(推荐)

如果要校验的列比较多,可以批量处理,避免重复写判断逻辑:

# 把要校验的列放到列表里
check_columns = [column_a, column_b, column_c]
# 校验所有指定列的值都不等于No
gcofilter = gcofile[(gcofile[check_columns] != 'No').all(axis=1)]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 03:45:02