python - 将一列多边形从字符串转换为 GeoPandas 几何

标签 python polygon geopandas

我有一个存储为 csv 文件的数据框,其中一列是多边形对象。但是,此列存储为字符串而不是 GeoPandas 几何对象。如何将此列转换为 Geopandas 几何对象以便执行地理分析?

这是我的数据的样子

my_df['geometry'].head()
0    POLYGON ((-122.419942 37.809021, -122.419938 3...
1    POLYGON ((-122.419942 37.809021, -122.419938 3...
2    POLYGON ((-122.419942 37.809021, -122.419938 3...
3    POLYGON ((-122.419942 37.809021, -122.419938 3...
4    POLYGON ((-122.405659 37.806674, -122.405974 3...
Name: geometry, dtype: object

我想将此 Pandas DataFrame 转换为 Geopandas GeoDataFrame,使用“几何”列作为 Geopandas 几何列。

my_geo_df = gpd.GeoDataFrame(my_df, geometry=my_df['geometry'])

但是,由于该列存储为字符串,Geopandas.DataFrame() 无法识别它,因此实际上无法创建 GeoDataFrame。

TypeError: Input geometry column must contain valid geometry objects.

最佳答案

您的多边形格式为 WKT,因此您必须将其转换为形状优美的多边形。按照 Geopandas 文档 ( https://geopandas.readthedocs.io/en/latest/gallery/create_geopandas_from_pandas.html ) 执行以下操作

使用 GeoPandas 0.9+:

df['geometry'] = gpd.GeoSeries.from_wkt(df['geometry'])
my_geo_df = gpd.GeoDataFrame(my_df, geometry='geometry')

使用旧版本:

from shapely import wkt

df['geometry'] = df['geometry'].apply(wkt.loads)
my_geo_df = gpd.GeoDataFrame(my_df, geometry='geometry')

关于python - 将一列多边形从字符串转换为 GeoPandas 几何,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56433138/

相关文章:

python - 发生异常 : SSLError when adding basemap with Contextily to GeoPandas map

python - 在 Python 中更新 geojson 文件中的值

python - Pyinstaller/Django - pkg_resources.DistributionNotFound : The 'django-omnibus' distribution was not found

c# - 如何相交两个多边形?

java - 创建顶部和底部有点的六边形

javascript - 我将如何实现鞋带定理来找到由相交线创建的多个凸多边形的面积?

python-import - 导入错误geopandas,fiona

python - 骑自行车度过一个日期

javascript - Uncaught ReferenceError : $ is not defined python flask

python - 为什么更改我的 xpath 可以让我的 selenium click 始终如一地工作?