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

使用set_index将列转为行索引时出现NaN问题(Python新手求助)

解决set_index后索引为NaN的问题

以下是几种常见原因和对应的解决办法:

  • 列名不匹配
    先确认目标列的准确名称,执行print(data_new.columns)查看所有列名,检查是否和你写的'Usual Mode of Transport to Work'完全一致(包括空格、大小写、特殊字符)。如果列名前后有空格,可先清理列名:

    data_new.columns = data_new.columns.str.strip()
    

    再重新执行set_index操作。

  • 未修改原DataFrame
    set_index默认不会直接修改原DataFrame,而是返回一个新的DataFrame。你需要二选一:

    • 加inplace=True参数直接修改原数据:
      data_new.set_index('Usual Mode of Transport to Work', inplace=True)
      
    • 将返回的新DataFrame重新赋值给变量:
      data_new = data_new.set_index('Usual Mode of Transport to Work')
      
  • 目标列本身存在大量缺失值
    先检查目标列的缺失情况:

    print(data_new['Usual Mode of Transport to Work'].isna().sum())
    

    如果结果显示有大量NaN,说明原数据里该列就缺失严重,需要先处理缺失(比如删除缺失行data_new = data_new.dropna(subset=['Usual Mode of Transport to Work']),或者填充缺失值),再设置索引。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 23:25:18