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.