Bergabung dengan (concat) daftar kerangka data serupa di geopanda?


15

Saya memiliki daftar dataframe, semua struktur yang sama dan semua adalah poligon.

Bagaimana saya bisa menambahkan mereka semua menggunakan geopanda?

Jawaban:


28

sepertinya ini adalah cara yang tepat untuk melakukannya sekarang:

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

8
Jawaban yang bagus, salah satu perbaikan: rdf = gpd.GeoDataFrame(pd.concat(dataframesList, ignore_index=True), crs=dataframesList[0].crs). Sekarang kerangka data baru juga akan memiliki CRS yang sama dengan salah satu kerangka data awal. Karena menggunakan pandas.concatmetadata geografis apa pun seperti CRS tidak dapat dipertahankan secara default.
AleksMat

Ini bekerja dengan baik - terima kasih. Saya menemukan append dapat tersesat misalnya ketika satu file memiliki "nama" dan yang lain memiliki "Nama", saya berakhir dengan tidak ada di kolom mana pun untuk baris dari satu file. Saya tidak dapat mereproduksi dengan andal jadi saya akhirnya memaksa nama kolom untuk huruf kecil untuk menyederhanakan penumbukan kolom, yang tampaknya dapat diandalkan.
Mike Honey

13

Saya baru saja bereksperimen dengan ini - mungkin di GeoPandas 0.2.1 dan Pandas 0.20.3 sedikit lebih ringkas:

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

gdf secara otomatis dibuat sebagai GeoDataFrame. Tentu saja jika ada kemungkinan indeks yang bertentangan, Anda ingin mempertahankan parameter 'ign_index = True'.


3
Saya baru saja mencoba ini dan saya dapat mengonfirmasi itu tidak berfungsi (menggunakan pandas_0.20.3 geopandas_0.3.0). Hasilnya adalah DataFrame, bukan GeoDataFrame. Misalnya jika Anda mencoba menggunakan gdf1.to_file(xxx, driver='ESRI Shapefile')Anda akan mendapatkan kesalahan yang mengatakan'DataFrame' object has no attribute 'to_file'
jberrio

@ jberrio terima kasih atas pembaruannya! Sepertinya pembaruan untuk GeoPandas membuat semuanya lebih eksplisit.
Charlie Parr

1
Untuk penanda yang meminta moderator menghapus tanda centang Terima, harap perhatikan bahwa ini tidak mungkin dilakukan. Sebagai solusi dari meta.stackexchange.com/a/187263/215590 saya mencoba menghapus jawabannya, tetapi penjawab meminta agar dihapus. Solusi jangka panjang untuk menangani jawaban yang diterima yang mungkin tidak lagi benar telah diajukan di meta.stackexchange.com/questions/268666/…
PolyGeo

Ini bekerja dengan baik untuk saya dengan versi panda: 0.24.2 dan versi geopanda: 0.5.0
denson
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.