Dołączasz (konkat) do listy podobnych ramek danych w geopandzie?

15

Mam listę ramek danych, wszystkie o tej samej strukturze i wszystkie są wielokątami.

Jak mogę dodać je wszystkie razem, używając geopand?

Philipp_Kats
źródło

Odpowiedzi:

28

wydaje się, że jest to teraz właściwy sposób:

rdf = gpd.GeoDataFrame( pd.concat( dataframesList, ignore_index=True) )
Philipp_Kats
źródło
8
Świetna odpowiedź, jedna poprawa: rdf = gpd.GeoDataFrame(pd.concat(dataframesList, ignore_index=True), crs=dataframesList[0].crs). Teraz nowa ramka danych będzie miała również taki sam CRS jak jedna z początkowych ramek danych. Ze względu na użycie pandas.concatjakichkolwiek metadanych geograficznych, takich jak CRS, domyślnie nie jest zachowywany.
AleksMat
Działa to dobrze - dzięki. Odkryłem, że append może zejść na manowce, np. Gdy jeden plik ma „nazwę”, a drugi ma „nazwę”, skończyło się na tym, że nic nie było w żadnej kolumnie dla wierszy z jednego pliku. Nie mogłem go odtworzyć w sposób niezawodny, więc ostatecznie zmuszałem nazwy kolumn do małych liter, aby uprościć tworzenie kolumn, co wydaje się wiarygodne.
Mike Honey
14

Właśnie z tym eksperymentowałem - może w GeoPandas 0.2.1 i Pandas 0.20.3 jest to nieco bardziej zwięzłe:

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

gdf jest tworzony automatycznie jako GeoDataFrame. Oczywiście, jeśli istnieje szansa na sprzeczne indeksy, warto zachować parametr „ignore_index = True”.

Charlie Parr
źródło
3
Właśnie próbowałem tego i mogę potwierdzić, że to nie działa (używając pandas_0.20.3 geopandas_0.3.0). Wynikiem jest DataFrame, a nie GeoDataFrame. Np. Jeśli spróbujesz użyć gdf1.to_file(xxx, driver='ESRI Shapefile'), pojawi się komunikat o błędzie'DataFrame' object has no attribute 'to_file'
jberrio
@jberrio dzięki za aktualizację! wygląda na to, że aktualizacja GeoPandas uściśliła sprawę.
Charlie Parr
1
W przypadku osoby sygnalizującej, która poprosiła moderatorów o usunięcie znacznika Akceptuj, należy pamiętać, że nie jest to możliwe. Jako obejście od meta.stackexchange.com/a/187263/215590 próbowałem usunąć odpowiedź, ale odpowiadający zażądał jej usunięcia. Długoterminowe rozwiązanie problemu z zaakceptowanymi odpowiedziami, które mogą być już niepoprawne, zostało zaproponowane na stronie meta.stackexchange.com/questions/268666/...
PolyGeo
Działa to dla mnie dobrze z wersją pandy: 0.24.2 i wersją geopandy: 0.5.0
denson