#attributeerror #geopandas
Вопрос:
Я пытаюсь .dissolve()
создать геодезическую рамку из полигонов, как в примере, приведенном в документации Geopandas, но я продолжаю получать сообщение об ошибке. Конкретно:
Я запускаю этот блок кода так, как он указан в документации:
world = gpd.read_file(gpd.datasets.get_path('naturalearth_lowres'))
world.dissolve(by='continent', aggfunc='sum')
Рамка world
геоданных загружается без каких-либо проблем, но когда я пытаюсь запустить .dissolve()
метод, я получаю эту ошибку:
AttributeError Traceback (most recent call last)
<ipython-input-34-58541d0d91bb> in <module>
1 world = gpd.read_file(gpd.datasets.get_path('naturalearth_lowres'))
----> 2 world.dissolve(by='continent', aggfunc='sum')
~AppDataLocalESRIcondaenvsarcgispro-py3-dcmay21libsite-packagesgeopandasgeodataframe.py in dissolve(self, by, aggfunc, as_index)
642
643 g = self.groupby(by=by, group_keys=False)[self.geometry.name].agg(
--> 644 merge_geometries
645 )
646
~AppDataLocalESRIcondaenvsarcgispro-py3-dcmay21libsite-packagespandascoregroupbygeneric.py in aggregate(self, func, engine, engine_kwargs, *args, **kwargs)
257
258 try:
--> 259 return self._python_agg_general(func, *args, **kwargs)
260 except (ValueError, KeyError):
261 # TODO: KeyError is raised in _python_agg_general,
~AppDataLocalESRIcondaenvsarcgispro-py3-dcmay21libsite-packagespandascoregroupbygroupby.py in _python_agg_general(self, func, *args, **kwargs)
1171 try:
1172 # if this function is invalid for this dtype, we will ignore it.
-> 1173 result, counts = self.grouper.agg_series(obj, f)
1174 except TypeError:
1175 continue
~AppDataLocalESRIcondaenvsarcgispro-py3-dcmay21libsite-packagespandascoregroupbyops.py in agg_series(self, obj, func)
697 # In the datetime64tz case it would incorrectly cast to tz-naive
698 # TODO: can we get a performant workaround for EAs backed by ndarray?
--> 699 return self._aggregate_series_pure_python(obj, func)
700
701 elif obj.index._has_complex_internals:
~AppDataLocalESRIcondaenvsarcgispro-py3-dcmay21libsite-packagespandascoregroupbyops.py in _aggregate_series_pure_python(self, obj, func)
759
760 result = lib.maybe_convert_objects(result, try_float=0)
--> 761 result = maybe_cast_result(result, obj, numeric_only=True)
762
763 return result, counts
~AppDataLocalESRIcondaenvsarcgispro-py3-dcmay21libsite-packagespandascoredtypescast.py in maybe_cast_result(result, obj, numeric_only, how)
332 # things like counts back to categorical
333 cls = dtype.construct_array_type()
--> 334 result = maybe_cast_to_extension_array(cls, result, dtype=dtype)
335
336 elif numeric_only and is_numeric_dtype(dtype) or not numeric_only:
~AppDataLocalESRIcondaenvsarcgispro-py3-dcmay21libsite-packagespandascoredtypescast.py in maybe_cast_to_extension_array(cls, obj, dtype)
391 """
392 from pandas.core.arrays.string_ import StringArray
--> 393 from pandas.core.arrays.string_arrow import ArrowStringArray
394
395 assert isinstance(cls, type), f"must pass a type: {cls}"
~AppDataLocalESRIcondaenvsarcgispro-py3-dcmay21libsite-packagespandascorearraysstring_arrow.py in <module>
33 # file is imported from even if pyarrow is < 1.0.0, before pyarrow.compute
34 # and its compute functions existed. GH38801
---> 35 if LooseVersion(pa.__version__) >= "1.0.0":
36 import pyarrow.compute as pc
37
~AppDataLocalESRIcondaenvsarcgispro-py3-dcmay21libdistutilsversion.py in __ge__(self, other)
68
69 def __ge__(self, other):
---> 70 c = self._cmp(other)
71 if c is NotImplemented:
72 return c
~AppDataLocalESRIcondaenvsarcgispro-py3-dcmay21libdistutilsversion.py in _cmp(self, other)
333 other = LooseVersion(other)
334
--> 335 if self.version == other.version:
336 return 0
337 if self.version < other.version:
AttributeError: 'LooseVersion' object has no attribute 'version'
Есть какие-нибудь идеи о том, что происходит? Я пробовал делать это и с другими геоданными, но безуспешно.
Я также пытался, но безуспешно устранить проблему:
- Ищу
AttributeError: 'LooseVersion' object has no attribute 'version'
. Результаты показывают, что это распространенная ошибка, но она возникает во многих контекстах и заставляет меня задуматься, не происходит ли что-то не так с внутренней работой Геопанд? - Обеспечение того, чтобы у меня была самая современная версия Geopandas, выполнив
conda update geopandas