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

合并GeoDataFrame与DataFrame后Primary_IncomeNet列全为NaN:原因及解决

原因与解决方案

核心问题

  1. 变量名误用:你把收入数据读取到了provi_income变量,但合并时调用的是income——这个变量只是存储了csv文件路径的字符串,根本不是实际的数据框,自然无法匹配出有效数据。
  2. 字符串空格不匹配:从你提供的income表数据能看到,identificatie列的每个PV值后面都带了多余空格(比如PV20 ),而polygons表的identificatie列是无空格的干净值(PV20),字符串内容不一致导致关联失败。

修正代码

# 修正文件路径写法(原代码缺少引号,会报错)
polygons = gpd.read_file("polygons.geojson")
provi_income = pd.read_csv("income.csv")

# 清理两个表中identificatie列的首尾空格
polygons['identificatie'] = polygons['identificatie'].str.strip()
provi_income['identificatie'] = provi_income['identificatie'].str.strip()

# 使用正确的变量执行左连接
merge = polygons.merge(provi_income, on="identificatie", how='left')

验证方法

可以先检查两个列的唯一值是否匹配,确认清理效果:

print("polygons的identificatie唯一值:", polygons['identificatie'].unique())
print("provi_income的identificatie唯一值:", provi_income['identificatie'].unique())

如果输出的唯一值完全对应,合并后Primary_IncomeNet列就会正常显示数值。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 15:34:59