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

如何基于已有数据填充Jupyter Notebook数据集State列的NaN值

用已有City-State对应关系填充State列缺失值

步骤1:自动生成City到State的映射字典

先从数据集中已有的非缺失State的行里提取唯一的City-State对应关系,生成映射字典,避免手动逐个输入:

import pandas as pd

# 假设你的数据集已读入为df
city_state_map = df.dropna(subset=['State']).drop_duplicates(subset=['City']).set_index('City')['State'].to_dict()

这段代码会:

  • 过滤掉State列有缺失的行
  • 对每个City只保留一条有效对应记录
  • 转成{城市: 邦/州}的字典格式

步骤2:手动补充特殊映射(可选)

如果数据集中存在部分City没有有效对应记录(比如题目里的示例),可以直接更新映射字典:

city_state_map.update({
    'Chennai': 'Tamil Nadu',
    'Vishakapatnam': 'Andhra Pradesh'
})

步骤3:填充缺失值

用映射字典匹配City列,填充State列的NaN值:

df['State'] = df['State'].fillna(df['City'].map(city_state_map))

注意事项

  • 如果某个City对应多个不同的State,drop_duplicates会保留第一条出现的记录,你可以根据需求调整(比如用groupby取最常见的State)
  • 填充后仍存在NaN的行,说明对应的City在映射字典里没有匹配项,需要进一步处理(比如手动补充或标记)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 05:52:41