Pandas判断字符串是否在DataFrame列中失效的原因排查
字符串判断DataFrame列失效的原因
- 核心逻辑错误:
in作用在Pandas的Series(即df.TRI)上时,默认是检查索引中是否存在该值,而非列内的元素。之前判断数值能正常工作,大概率是数值刚好和索引值重合,纯属巧合。 - 索引类型不匹配:如果DataFrame的索引不是字符串类型,而
myWord[i]是字符串,in操作符自然找不到匹配的索引,直接返回False,看起来就像代码“失效”。 - 元素格式不一致:即便字符串确实在列中,也可能存在大小写、空格、特殊字符的差异,比如列内是
"apple "(带尾空格),而myWord[i]是"apple",这种情况下用in查索引肯定找不到,而之前数值判断不会出现这类格式问题。
正确写法
要检查字符串是否在列的元素中,应该使用:
if myWord[i] in df.TRI.values:
或者更适合大数据量的严谨写法:
if df.TRI.isin([myWord[i]]).any():
内容的提问来源于stack exchange,提问作者fransua
相关产品推荐
相关产品推荐

