Tham gia (concat) danh sách các datafram tương tự trong geopandas?


15

Tôi có một danh sách các datafram, tất cả đều có cùng cấu trúc và tất cả đều là đa giác.

Làm thế nào tôi có thể thêm tất cả chúng lại với nhau bằng cách sử dụng geopandas?

Câu trả lời:


26

có vẻ như đây là cách đúng đắn để làm điều đó ngay bây giờ:

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

7
Câu trả lời tuyệt vời, một cải tiến : rdf = gpd.GeoDataFrame(pd.concat(dataframesList, ignore_index=True), crs=dataframesList[0].crs). Bây giờ dataframe mới cũng sẽ có CRS giống như một trong các datafram ban đầu. Do sử dụng pandas.concatbất kỳ siêu dữ liệu địa lý nào như CRS không được bảo toàn theo mặc định.
AleksMat

Điều này hoạt động tốt - cảm ơn. Tôi đã tìm thấy phần bổ sung có thể đi lạc hướng, ví dụ khi một tệp có "tên" và một tệp khác có "Tên", tôi đã kết thúc không có gì trong một cột cho các hàng từ một tệp. Tôi không thể tái tạo nó một cách đáng tin cậy vì vậy cuối cùng tôi đã buộc các tên cột thành chữ thường để đơn giản hóa việc trộn cột, điều này có vẻ đáng tin cậy.
Mike Honey

12

Tôi vừa thử nghiệm điều này - có thể trong GeoPandas 0.2.1 và Pandas 0.20.3, nó ngắn gọn hơn một chút:

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

gdf được tạo tự động dưới dạng GeoDataFrame. Tất nhiên, nếu có cơ hội xảy ra xung đột các chỉ số, bạn sẽ muốn giữ tham số 'ign_index = True'.


3
Tôi mới thử cái này và tôi có thể xác nhận nó không hoạt động (sử dụng pandas_0.20.3 geopandas_0.3.0). Kết quả là DataFrame, không phải GeoDataFrame. Ví dụ: nếu bạn cố gắng sử dụng, gdf1.to_file(xxx, driver='ESRI Shapefile')bạn sẽ gặp lỗi'DataFrame' object has no attribute 'to_file'
jberrio

@jberrio cảm ơn đã cập nhật! Có vẻ như việc cập nhật lên GeoPandas khiến mọi thứ rõ ràng hơn.
Charlie Parr

1
Đối với người đánh dấu yêu cầu người kiểm duyệt loại bỏ dấu kiểm Chấp nhận, vui lòng lưu ý rằng điều này là không thể. Như một cách giải quyết từ meta.stackexchange.com/a/187263/215590 Tôi đã cố xóa câu trả lời, nhưng người trả lời yêu cầu rằng nó không bị xóa. Một giải pháp dài hạn để xử lý các câu trả lời được chấp nhận có thể không còn đúng nữa đã được đề xuất tại meta.stackexchange.com/questions/268666/
Kẻ

Điều này làm việc tốt với tôi với phiên bản gấu trúc: 0.24.2 và phiên bản geopandas:
0.5.0
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.