gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 11:18:48 29 4
gpt4 key购买 nike

我有一个存储为 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/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com