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