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

Pandas map方法映射州编码后返回含NaN值列的问题

问题分析与解决办法

问题根源

你用错了字典层级。state_abbv_dict的外层是'Postal Code'键,真正的州名-缩写映射是这个键对应的子字典。直接用整个state_abbv_dict去map,只有当State列的值等于'Postal Code'时才能匹配上,其他州名自然返回NaN。

另外,从尾部数据的县名(Somerset、Oxford等都是缅因州的县)来看,这些行的原始State值应该是'Maine',你需要确认state_abbv_dict['Postal Code']里有没有'Maine': 'ME'这个条目,如果没有也会导致NaN。

修复代码

先提取正确的映射字典,再执行映射:

# 提取真正的州名-缩写映射
state_map = state_abbv_dict['Postal Code']
# 执行映射
county_2015['State'] = county_2015['State'].map(state_map)

额外检查

如果还有NaN,先查看这些行的原始State值:

# 先备份原State列,避免覆盖后无法查看原始值
county_2015['State_Original'] = county_2015['State']
# 映射后筛选出State为NaN的行,查看对应的原始州名
print(county_2015[county_2015['State'].isna()]['State_Original'].unique())

根据输出的州名,补充到state_map里即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 23:15:36