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

为何pandas的.unique方法与.loc筛选无法配合使用?

Pandas .unique()识别到元素但.loc筛选返回空的解决办法

这种情况大概率是字符串里藏着你看不到的空白或特殊字符,或者数据类型不一致导致的,给你几个排查和解决的步骤:

1. 先确认唯一值的真实样貌

.unique()显示的"CH"可能只是表面,实际可能带前后空格、全角空格或者换行符。用下面的代码打印每个唯一值的原始表示和长度,就能揪出问题:

for farm in data["farm_y"].unique():
    print(f"值: {repr(farm)}, 长度: {len(farm)}")

如果输出里"CH"的长度不是2,说明肯定有隐藏字符。

2. 针对性清理数据

情况1:前后有空白字符

直接用str.strip()去掉字符串首尾的空白:

data["farm_y"] = data["farm_y"].str.strip()

情况2:包含不可见特殊字符(比如全角空格、制表符)

用正则表达式替换掉所有空白类字符:

data["farm_y"] = data["farm_y"].str.replace(r'\s+', '', regex=True)

情况3:数据类型不一致

比如有的元素是字符串,有的是数值/None,导致==比较不匹配。先统一转成字符串再清理:

data["farm_y"] = data["farm_y"].astype(str).str.strip()

3. 验证效果

清理完之后再执行你原来的循环,就能正常筛选出对应的数据了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 20:54:31