การทำ Spatial Join และนับจำนวนข้อมูล
ต่อจากขั้นตอนก่อนหน้า เราจะเตรียมชุดข้อมูลสำหรับสร้าง choropleth ด้วย geopandas โดยสร้าง GeoDataFrame ของใบอนุญาตก่อสร้างที่ผ่านการทำ spatial join กับเขตสภาแล้ว จากนั้นจึงนับจำนวนใบอนุญาตก่อสร้างที่ออกในแต่ละเขตสภา
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การแสดงผลข้อมูลเชิงภูมิศาสตร์ด้วย Python
คำแนะนำการฝึกหัด
- สร้าง
permits_geoจากpermits,council_districts.crs, และgeometryในpermits - ทำ spatial join ระหว่าง
permits_geoกับcouncil_districtsเพื่อดึงใบอนุญาตก่อสร้างที่อยู่withinแต่ละเขตสภา แล้วเก็บผลลัพธ์ไว้ในpermits_by_district - นับจำนวนใบอนุญาตในแต่ละเขตเป็น
permit_countsโดยใช้เมธอดgroupby()และsize()ต่อกัน - สร้าง
counts_dfจากpermit_countsแล้ว reset index และตั้งชื่อคอลัมน์เป็นdistrictและbldg_permits
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Create permits_geo
permits_geo = gpd.GeoDataFrame(____, crs = ____.____, geometry = ____.____)
# Spatially join permits_geo and council_districts
permits_by_district = gpd.sjoin(____, ____, ____ = ____)
print(permits_by_district.head(2))
# Count permits in each district
permit_counts = permits_by_district.____(____).____()
# Convert permit_counts to a df with 2 columns: district and bldg_permits
counts_df = ____.to_frame()
counts_df = counts_df.____()
counts_df.____ = ['district', 'bldg_permits']
print(counts_df.head(2))