Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python geopandas GeoDataFrame使用gdf.astype()转换为pandas数据帧_Python_Pandas_Geopandas - Fatal编程技术网

Python geopandas GeoDataFrame使用gdf.astype()转换为pandas数据帧

Python geopandas GeoDataFrame使用gdf.astype()转换为pandas数据帧,python,pandas,geopandas,Python,Pandas,Geopandas,我有一个geopandas GeoDataFrame,有多个列。当我尝试为geoDataFrame列设置数据类型时,它返回一个DataFrame。有没有方法返回GeoDataFrame对象 我已经做了一个变通方法,在设置列的数据类型之后,我将数据框更改回geoDataFrame。但我只是想知道是否有一种方法可以返回GeoDataFrame。我拥有的代码如下: gdf_voronoi = gdf_voronoi.astype({'elec_neighbors': object, 'trans_li

我有一个geopandas GeoDataFrame,有多个列。当我尝试为geoDataFrame列设置数据类型时,它返回一个DataFrame。有没有方法返回GeoDataFrame对象

我已经做了一个变通方法,在设置列的数据类型之后,我将数据框更改回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)

任何帮助都会很好

这是GeoPandas/pandas中的一个bug,为此我在这里打开了一个问题:。因此,在短期内,您需要保留您的变通方法,以便在以后转换回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)

我不知道。非常感谢你。我将按照建议对代码进行更改。