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

Pandas按列值过滤行时非目标列返回NaN问题求解

问题成因

你构造DataFrame所用字典的键均为长度为1的元组(例如('Weights',)而非普通字符串Weights),因此生成的DataFrame列名本质是元组类型,打印时的显示效果会省略元组的括号,让你误以为列名是普通字符串。
你使用字符串Weights做列索引时,无法匹配到实际的元组列名,导致布尔索引逻辑异常,最终返回保留全量行、仅Weights列符合条件的位置有值、其余全为NaN的错误结果。

解决方法

两种方案可按需选择:

  • 方案一:过滤时直接使用实际的元组列名构造条件
results[results[('Weights',)] == 'uniform']
  • 方案二:先把列名统一替换为普通字符串,后续按常规写法操作即可
# 批量提取元组的首个元素作为新列名
results.columns = [col[0] for col in results.columns]
# 后续可直接使用你原本的过滤写法
results[results['Weights'] == 'uniform']

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 13:54:04