Mekânsal join'ler

Python ile Coğrafi Verileri Görselleştirme

Mary van Valkenburg

Data Science Program Manager, Nashville Software School

Belediye ve okul bölgeleri

35 belediye bölgesi grafiği

9 okul bölgesi grafiği

Python ile Coğrafi Verileri Görselleştirme

.sjoin() içindeki predicate bağımsız değişkeni

import geopandas as gpd

gpd.sjoin(blue_region_gdf, black_point_gdf, predicate = <how to build>)

predicate, intersects, contains ve within olabilir

Python ile Coğrafi Verileri Görselleştirme

.sjoin() kullanımı

siyah noktalarla mavi bölge grafiği

Python ile Coğrafi Verileri Görselleştirme

predicate = 'intersects'

gpd.sjoin(blue_region_gdf, black_point_gdf, predicate = 'intersects')

açık mavi çokgen ve siyah noktalar

Python ile Coğrafi Verileri Görselleştirme

predicate = 'contains'

gpd.sjoin(blue_region_gdf, black_point_gdf, predicate = 'contains')

açık mavi çokgen ve siyah noktalar

Python ile Coğrafi Verileri Görselleştirme

predicate = 'within'

gpd.sjoin(black_point_gdf, blue_region_gdf, predicate = 'within')

açık mavi çokgen ve siyah noktalar

Python ile Coğrafi Verileri Görselleştirme

.sjoin() predicate bağımsız değişkeni - within

# okul bölgeleri içindeki belediye bölgelerini bul

within_gdf = gpd.sjoin(council_districts, school_districts, predicate = 'within')

print('okul bölgeleri içindeki belediye bölgeleri: ', within_gdf.shape[0])
okul bölgeleri içindeki belediye bölgeleri:  11
Python ile Coğrafi Verileri Görselleştirme

.sjoin() predicate bağımsız değişkeni - contains

# belediye bölgelerini içeren okul bölgelerini bul

contains_gdf = pd.sjoin(school_districts, council_districts, predicate = 'contains')

print('okul bölgeleri belediye bölgelerini içerir: ', contains_gdf.shape[0])
okul bölgeleri belediye bölgelerini içerir:  11
Python ile Coğrafi Verileri Görselleştirme

.sjoin() predicate bağımsız değişkeni - intersects

# okul bölgeleriyle kesişen belediye bölgelerini bul

intersect_gdf = gpd.sjoin(council_districts, school_districts, predicate = 'intersects')

print('belediye bölgeleri okul bölgeleriyle kesişir: ', intersect.shape[0])
belediye bölgeleri okul bölgeleriyle kesişir:  100
Python ile Coğrafi Verileri Görselleştirme

Mekânsal olarak join edilmiş GeoDataFrame'deki sütunlar

within_gdf = gpd.sjoin(council_districts, school_districts, predicate = 'within')
within_gdf.head()
  first_name_left  last_name_left district_left  index_right    
0 Nick             Leonardo            1              0              
1 DeCosta          Hastings            2              0 
2 Nancy            VanReece            8              1    
3 Bill             Pridemore           9              1    
9 Doug             Pardue             10              1    
Python ile Coğrafi Verileri Görselleştirme
# Okul bölgesine göre belediye bölgelerini özetle - district_left ve district_right yeniden adlandır
within_gdf.district_left = council_district
within_gdf.district_right = school_district
within_gdf[['council_district', 'school_district']
          ].groupby('school_district'
                   ).agg('count'
                        ).sort_values('council_district', ascending = False)
                   council_district 
school_district    
       3                   3
       1                   2
       9                   2
       2                   1
       5                   1
       6                   1
       8                   1
Python ile Coğrafi Verileri Görselleştirme

Hadi pratik yapalım!

Python ile Coğrafi Verileri Görselleştirme

Preparing Video For Download...