Geopandas GeraDataFrame преобразуется в DataFrame для панд с помощью gdf.astype (). - PullRequest
2 голосов
/ 25 мая 2019

У меня есть геопанда GeoDataFrame с несколькими столбцами.Когда я пытаюсь установить типы данных для столбцов geoDataFrame, он возвращает pandas DataFrame.Есть ли способ вернуть объект GeoDataFrame?

Я сделал обходной путь, в котором я изменяю DataFrame обратно на geoDataFrame после установки типов данных столбцов.Но мне просто интересно узнать, есть ли способ вернуть GeoDataFrame.Код, который я имею ниже:

gdf_voronoi = gdf_voronoi.astype({'elec_neighbors': object, 'trans_lines': object, 'Cap': float, 'Ratio': float,'Area': float})

geo_list = gdf_voronoi['geometry'].tolist()
gdf_voronoi = gpd.GeoDataFrame(gdf_voronoi, crs=crs, geometry=geo_list)

Любая помощь будет отличной!

1 Ответ

1 голос
/ 25 мая 2019

Это ошибка в GeoPandas / pandas, для которой я открыл здесь проблему: https://github.com/geopandas/geopandas/issues/1006. Так что в краткосрочной перспективе вам нужно будет сохранить обходной путь для последующего преобразования обратно в GeoDataFrame.

Обратите внимание, что для преобразования результата обратно в GeoDataFrame вам не нужно преобразовывать геометрию в список. Достаточно указать имя столбца геометрии, например:

gdf_voronoi = gdf_voronoi.astype(...)
gdf_voronoi = geopandas.GeoDataFrame(gdf_voronoi, geometry='geometry', crs=crs)

или поскольку «геометрия» является значением по умолчанию, в этом случае вы даже можете не указывать это:

gdf_voronoi = gdf_voronoi.astype(...)
gdf_voronoi = geopandas.GeoDataFrame(gdf_voronoi, crs=crs)
...