AttributeError: 'CRS' object has no attribute 'equals'

AttributeError: 'CRS' object has no attribute 'equals'

我正在尝试使用默认数据集使用 Geopandas 制作交互式地图。

countries.to_crs(epsg=3395)
countries.explore(column='pop_est',cmap='magma')

现在我得到以下错误:

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-27-92f1397b09bf> in <module>
      1 #Popultion mapping- Interactive
      2 countries.to_crs(epsg=3395)
----> 3 countries.explore(column='pop_est',cmap='magma')

~\anaconda3\envs\myenv\lib\site-packages\geopandas\geodataframe.py in explore(self, *args, **kwargs)
   1856     def explore(self, *args, **kwargs):
   1857         """Interactive map based on folium/leaflet.js"""
-> 1858         return _explore(self, *args, **kwargs)
   1859 
   1860     def sjoin(self, df, *args, **kwargs):

~\anaconda3\envs\myenv\lib\site-packages\geopandas\explore.py in _explore(df, column, cmap, color, m, tiles, attr, tooltip, popup, highlight, categorical, legend, scheme, k, vmin, vmax, width, height, categories, classification_kwds, control_scale, marker_type, marker_kwds, style_kwds, highlight_kwds, missing_kwds, tooltip_kwds, popup_kwds, legend_kwds, **kwargs)
    283         kwargs["crs"] = "Simple"
    284         tiles = None
--> 285     elif not gdf.crs.equals(4326):
    286         gdf = gdf.to_crs(4326)
    287 

AttributeError: 'CRS' object has no attribute 'equals'

我该如何解决这个问题?

您的环境中安装了过时版本的 pyproj。您至少需要 pyproj 2.5.0。 GeoPandas 0.10.x 包含安装 bug 允许您安装旧版本,但这不起作用。更新你的 pyproj。

conda update pyproj

pip install -U pyproj 

另外,请注意上面代码段中的 countries.to_crs(epsg=3395) 行没有执行任何操作。它不起作用。您需要分配重新投影的 GeoDataFrame 或使用关键字。但请记住,这对 explore 没有影响,因为它会自动将几何图形重新投影到 Web Mercator。

countries.to_crs(epsg=3395, inplace=True)
# or
countries = countries.to_crs(epsg=3395)