กำลังเข้าร่วม (concat) รายการของ dataframes ที่คล้ายกันใน geopandas หรือไม่


15

ฉันมีรายการของ dataframes โครงสร้างเดียวกันทั้งหมดและทั้งหมดเป็นรูปหลายเหลี่ยม

ฉันจะเพิ่มพวกเขาทั้งหมดเข้าด้วยกันโดยใช้ geopandas ได้อย่างไร

คำตอบ:


28

ดูเหมือนว่านี่เป็นวิธีที่ถูกต้องในการทำเช่นนั้นในตอนนี้:

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

8
rdf = gpd.GeoDataFrame(pd.concat(dataframesList, ignore_index=True), crs=dataframesList[0].crs)คำตอบที่ดีซึ่งเป็นหนึ่งในการปรับปรุง: ตอนนี้ dataframe ใหม่จะมี CRS เหมือนกับหนึ่งใน dataframes เริ่มต้น เนื่องจากการใช้pandas.concatข้อมูลเมตาทางภูมิศาสตร์ใด ๆ เช่น CRS จะไม่ได้รับการเก็บรักษาตามค่าเริ่มต้น
AleksMat

มันใช้งานได้ดี - ขอบคุณ ฉันพบว่าผนวกสามารถหลงทางเช่นเมื่อไฟล์หนึ่งมี "ชื่อ" และอื่น ๆ ที่มี "ชื่อ" ฉันลงเอยด้วยไม่มีอะไรในคอลัมน์ทั้งแถวสำหรับแถวจากไฟล์หนึ่ง ฉันไม่สามารถทำซ้ำได้อย่างน่าเชื่อถือดังนั้นฉันจึงสิ้นสุดการบังคับให้ชื่อคอลัมน์เป็นตัวพิมพ์เล็กเพื่อทำให้การบดคอลัมน์ง่ายขึ้นซึ่งน่าเชื่อถือ
Mike Honey

14

ฉันเพิ่งทดลองสิ่งนี้ - บางทีใน GeoPandas 0.2.1 และ Pandas 0.20.3 มันค่อนข้างกระชับกว่านี้:

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

gdf ถูกสร้างโดยอัตโนมัติเป็น GeoDataFrame แน่นอนหากมีโอกาสที่จะมีดัชนีที่ขัดแย้งกันคุณจะต้องคงพารามิเตอร์ 'ละเว้น_index = True' ไว้


3
ฉันเพิ่งลองทำสิ่งนี้และฉันสามารถยืนยันได้ว่าไม่ได้ทำงาน (ใช้ pandas_0.20.3 geopandas_0.3.0) ผลลัพธ์คือ DataFrame ไม่ใช่ GeoDataFrame เช่นถ้าคุณพยายามใช้gdf1.to_file(xxx, driver='ESRI Shapefile')คุณจะได้รับข้อผิดพลาดซึ่งระบุว่า'DataFrame' object has no attribute 'to_file'
jberrio

@jberrio ขอบคุณสำหรับการอัปเดต! ดูเหมือนว่าการอัปเดตเป็น GeoPandas ทำให้สิ่งต่าง ๆ ชัดเจนยิ่งขึ้น
Charlie Parr

1
สำหรับผู้ตั้งค่าสถานะที่ขอให้ผู้ดูแลลบเครื่องหมายถูกยอมรับโปรดระวังว่าสิ่งนี้ไม่สามารถทำได้ วิธีแก้ปัญหาจากmeta.stackexchange.com/a/187263/215590ฉันพยายามลบคำตอบ แต่ผู้ตอบตอบขอให้ยกเลิกการลบ วิธีการแก้ปัญหาในระยะยาวสำหรับการรับมือกับคำตอบที่ได้รับการยอมรับว่าอาจจะไม่ถูกต้องได้รับการเสนอที่meta.stackexchange.com/questions/268666/...
PolyGeo

สิ่งนี้ใช้ได้ผลดีสำหรับฉันด้วยรุ่นหมีแพนด้า: 0.24.2 และรุ่น geopandas: 0.5.0
denson
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.