Beitritt (Concat) Liste ähnlicher Datenrahmen in Geopandas?


15

Ich habe eine Liste von Datenrahmen, alle mit der gleichen Struktur und alle sind Polygone.

Wie kann ich sie alle mit Geopandas addieren?

Antworten:


26

es scheint, dass dies der richtige Weg ist, dies jetzt zu tun:

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

7
Tolle Antwort, eine Verbesserung : rdf = gpd.GeoDataFrame(pd.concat(dataframesList, ignore_index=True), crs=dataframesList[0].crs). Jetzt hat der neue Datenrahmen auch das gleiche CRS wie einer der ursprünglichen Datenrahmen. Aufgrund der Verwendung pandas.concatvon geografischen Metadaten wie CRS werden diese nicht standardmäßig beibehalten.
AleksMat

Das funktioniert gut - danke. Ich habe festgestellt, dass das Anhängen in die Irre gehen kann, z. B. wenn eine Datei "Name" und eine andere "Name" hat, habe ich in keiner Spalte für Zeilen aus einer Datei etwas gefunden. Ich konnte es nicht zuverlässig reproduzieren und zwang die Spaltennamen in Kleinbuchstaben, um das Spalten-Mashing zu vereinfachen, was zuverlässig zu sein scheint.
Mike Honey

12

Ich habe gerade damit experimentiert - vielleicht ist es in GeoPandas 0.2.1 und Pandas 0.20.3 etwas prägnanter:

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

gdf wird automatisch als GeoDataFrame erstellt. Wenn die Möglichkeit besteht, dass Indizes in Konflikt geraten, sollten Sie den Parameter 'ignore_index = True' beibehalten.


3
Ich habe es gerade versucht und kann bestätigen, dass es nicht funktioniert (mit pandas_0.20.3 geopandas_0.3.0). Das Ergebnis ist ein DataFrame, kein GeoDataFrame. Wenn Sie beispielsweise versuchen, zu verwenden, erhalten gdf1.to_file(xxx, driver='ESRI Shapefile')Sie eine Fehlermeldung, die besagt'DataFrame' object has no attribute 'to_file'
jberrio

@jberrio danke für das Update! Es sieht so aus, als hätte das Update auf GeoPandas die Dinge expliziter gemacht.
Charlie Parr

1
Für den Flagger, der die Moderatoren angefordert hat, entfernen Sie bitte das Häkchen Akzeptieren. Beachten Sie, dass dies nicht möglich ist. Als Problemumgehung von meta.stackexchange.com/a/187263/215590 habe ich versucht, die Antwort zu löschen, aber der Antwortende hat angefordert, dass sie nicht gelöscht wird. Eine langfristige Lösung für den Umgang mit akzeptierten Antworten, die möglicherweise nicht mehr korrekt sind, wurde unter meta.stackexchange.com/questions/268666/…
PolyGeo

Dies funktionierte gut für mich mit Pandas Version: 0.24.2 und Geopandas Version: 0.5.0
Denson
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.