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

Geopandas中GeoDataFrame执行dissolve()报LooseVersion错误咨询

问题成因

该错误与Geopandas本身无关,属于ArcGIS Pro自带conda环境中pandas、pyarrow、distutils三者的版本兼容冲突:
报错栈显示pandas在调用dissolve过程中触发扩展类型转换逻辑,尝试导入ArrowStringArray时,使用distutils.LooseVersion对比pyarrow版本号,因ArcGIS Pro修改过基础依赖包规则,或当前pyarrow版本的版本号格式不符合解析要求,导致LooseVersion实例未正常生成version属性,触发属性不存在报错。

可行解决方案
  • 方案1:指定聚合列,避免触发非必要的类型转换逻辑
    原代码不加限制的aggfunc='sum'会尝试对所有列执行求和,包括非数值类列,极易触发pandas的扩展类型校验逻辑。改为仅指定需要聚合的数值列即可规避问题:
world = gpd.read_file(gpd.datasets.get_path('naturalearth_lowres'))
# 仅指定需要聚合的数值字段,几何字段默认自动合并
dissolved_world = world.dissolve(
    by='continent',
    aggfunc={
        'pop_est': 'sum',
        'gdp_md_est': 'sum'
    }
)
  • 方案2:临时关闭pandas的pyarrow字符串存储选项
    在执行dissolve操作前添加配置项,避免pandas调用Arrow相关逻辑:
import pandas as pd
pd.set_option('string_storage', 'python')
  • 方案3:卸载pyarrow
    如果当前环境不需要使用pyarrow相关功能,直接卸载即可彻底解决该冲突:
conda remove pyarrow
  • 方案4:安装兼容版本的依赖包
    ArcGIS Pro环境下建议安装经过验证的匹配版本,避免依赖冲突:
conda install pyarrow=10.0.1 pandas=1.4.4

内容的提问来源于stack exchange,提问作者Darren C.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 18:54:06