Partecipare (concat) alla lista di frame di dati simili in geopandas?


15

Ho un elenco di frame di dati, tutti della stessa struttura e tutti sono poligoni.

Come posso aggiungerli tutti insieme usando geopandas?

Risposte:


28

sembra che questo sia il modo giusto per farlo proprio ora:

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

8
Grande risposta, un miglioramento: rdf = gpd.GeoDataFrame(pd.concat(dataframesList, ignore_index=True), crs=dataframesList[0].crs). Ora anche il nuovo frame di dati avrà lo stesso CRS di uno dei frame di dati iniziali. A causa dell'utilizzo di pandas.concatmetadati geografici come CRS non viene conservato per impostazione predefinita.
— AleksMat,

Funziona bene, grazie. Ho scoperto che l'appendice può andare fuori strada, ad esempio quando un file ha "nome" e un altro ha "nome", ho finito con niente in nessuna delle colonne per le righe di un file. Non sono riuscito a riprodurlo in modo affidabile, quindi ho finito per forzare i nomi delle colonne in lettere minuscole per semplificare il mashing delle colonne, che sembra essere affidabile.
— Mike Honey,

14

Ho appena sperimentato questo, forse in GeoPandas 0.2.1 e Pandas 0.20.3 è un po 'più conciso:

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

gdf viene creato automaticamente come GeoDataFrame. Ovviamente se c'è una possibilità di indici in conflitto, ti consigliamo di mantenere il parametro 'ignore_index = True'.


3
Ho appena provato questo e posso confermare che non funziona (usando pandas_0.20.3 geopandas_0.3.0). Il risultato è un DataFrame, non un GeoDataFrame. Ad esempio, se si tenta di utilizzare gdf1.to_file(xxx, driver='ESRI Shapefile'), verrà visualizzato un errore che indica'DataFrame' object has no attribute 'to_file'
— jberrio il

@jberrio grazie per l'aggiornamento! sembra che l'aggiornamento a GeoPandas abbia reso le cose più esplicite.
— Charlie Parr,

1
Per il flagger che ha richiesto i moderatori, rimuovere il segno di spunta Accetta, tenere presente che ciò non è possibile. Come soluzione alternativa da meta.stackexchange.com/a/187263/215590 ho provato a eliminare la risposta, ma il risponditore ha richiesto che fosse annullato. Una soluzione a lungo termine per gestire le risposte accettate che potrebbero non essere più corrette è stata proposta su meta.stackexchange.com/questions/268666/…
— PolyGeo

Questo ha funzionato bene per me con la versione panda: 0.24.2 e la versione geopandas: 0.5.0
— denson
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.