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

为什么执行Pandas数据筛选后得到空的DataFrame?

Pandas筛选指定学历数据返回空DataFrame问题排查方案

问题描述

我需要筛选出"Degree status" == "HS-grad"(即高中毕业)的相关数据,编写的代码如下:

HS_grad = census_data2[census_data2["Degree Status"]=="HS-grad"]
print(HS_grad)

运行后输出为空DataFrame,提示信息如下:

Empty DataFrame
Columns: [Employment Type, Degree Status, Marriage-Status, Job-Role, Family-Role, Ethnicity, Gender, Country, Earnings]
Index: []

我已提前对该数据集的表头完成重命名操作。

排查及解决方法

  • 排查列名匹配问题
    pandas对列名的匹配严格区分大小写、空格,你最初需求里写的列名是Degree status(status首字母小写),但代码里用的是Degree Status(Status首字母大写),先确认重命名后的列名和代码中引用的列名完全一致。
  • 排查字段值隐藏字符问题
    数据集的字段值很可能存在前后空格、不可见特殊字符,导致精确匹配失败,可先打印该列所有唯一值确认实际取值格式:
    print(census_data2["Degree Status"].unique())
    
    若确认存在多余空格,可先对该列做清洗后再筛选:
    # 去除字段值前后的空格、换行符等空白字符
    census_data2["Degree Status"] = census_data2["Degree Status"].str.strip()
    # 重新筛选
    HS_grad = census_data2[census_data2["Degree Status"] == "HS-grad"]
    print(HS_grad)
    
  • 排查字段数据类型问题
    若上述操作仍无结果,可确认该列的数据类型是否为字符串:
    print(census_data2["Degree Status"].dtype)
    
    若不是字符串类型,可先做类型转换后再执行筛选操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 19:36:04