web-dev-qa-db-fra.com

Conversion d'une colonne de polygones de la chaîne en géométrie de Geopandas

J'ai un fichier dataframe stocké sous forme de fichier CSV, une colonne de laquelle est un objet polygone. Cependant, cette colonne est stockée en tant que chaînes à la place de l'objet géométrie de Geopandas. Comment puis-je convertir cette colonne en objet géométrie de Geopandas afin que je puisse effectuer l'analyse GEO?

Voici comment mes données ressemblent

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

Je veux convertir ceci Pandas Dataframe à Geopandas Geodatafrataframe, à l'aide de la colonne "Géométrie" comme colonne géométrie géopommune.

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

Cependant, comme la colonne est stockée en tant que chaînes, geopandas.dataframe () ne le reconnaît pas et ne peut donc pas créer un géodataframe.

TypeError: Input geometry column must contain valid geometry objects.
12
xinyuanliu

Le format de votre polygone est WKT, vous devez donc le convertir en polygone galonniel. Suite à Geopandas Docs ( https://geopandas.readthedocs.io/fr/Latest/gallery/create_geopandas_from_pandas.html )

from shapely import wkt

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