¿Unirse a la lista (concat) de tramas de datos similares en geopandas?


15

Tengo una lista de marcos de datos, todos de la misma estructura y todos son polígonos.

¿Cómo puedo agregarlos todos juntos usando geopandas?

Respuestas:


28

Parece que esta es la forma correcta de hacerlo ahora:

rdf = gpd.GeoDataFrame( pd.concat( dataframesList, ignore_index=True) )

8
Gran respuesta, una mejora: rdf = gpd.GeoDataFrame(pd.concat(dataframesList, ignore_index=True), crs=dataframesList[0].crs). Ahora el nuevo marco de datos también tendrá el mismo CRS que uno de los marcos de datos iniciales. Debido al uso de pandas.concatmetadatos geográficos, como CRS, no se conserva de forma predeterminada.
AleksMat

Esto funciona bien, gracias. Encontré que el apéndice puede perderse, por ejemplo, cuando un archivo tiene "nombre" y otro tiene "Nombre", terminé sin nada en ninguna columna para las filas de un archivo. No pude reproducirlo de manera confiable, así que terminé forzando los nombres de las columnas a minúsculas para simplificar el macerado de columnas, lo que parece ser confiable.
Mike Honey el

13

Acabo de experimentar con esto, tal vez en GeoPandas 0.2.1 y Pandas 0.20.3 es un poco más conciso:

gdf = pd.concat([gdf1, gdf2])

gdf se crea automáticamente como un GeoDataFrame. Por supuesto, si existe la posibilidad de índices conflictivos, querrá mantener el parámetro 'ignore_index = True'.


3
Acabo de probar esto y puedo confirmar que no funciona (usando pandas_0.20.3 geopandas_0.3.0). El resultado es un DataFrame, no un GeoDataFrame. Por ejemplo, si intenta utilizar gdf1.to_file(xxx, driver='ESRI Shapefile')obtendrá un error que dice'DataFrame' object has no attribute 'to_file'
jberrio

@jberrio gracias por la actualización! Parece que la actualización de GeoPandas hizo las cosas más explícitas.
Charlie Parr

1
Para el marcador que solicitó a los moderadores que eliminen la marca de verificación Aceptar, tenga en cuenta que esto no es posible. Como solución alternativa de meta.stackexchange.com/a/187263/215590 , intenté eliminar la respuesta, pero el contestador solicitó que no se borre. Se ha propuesto una solución a largo plazo para tratar las respuestas aceptadas que pueden no ser correctas en meta.stackexchange.com/questions/268666/…
PolyGeo

Esto funcionó bien para mí con la versión de pandas: 0.24.2 y la versión de geopandas: 0.5.0
denson
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.