BaşlayınÜcretsiz başlayın

D'yi Hesaplayan Fonksiyon Oluştur

Farklılık Endeksi'ni (Index of Dissimilarity) hesaplamak birden çok adım gerektirir ve tekrar kullanım potansiyeli yüksektir. Bu egzersizde, önceki egzersizde kullandığımız dissimilarity fonksiyonunu oluşturacaksın. Fonksiyonun giriş parametreleri; küçük alan coğrafyalarını (ör. bölgeler/tracts) içeren bir DataFrame ve üç sütun adı olacak: Grup A ve Grup B’nin nüfus sayılarını içeren iki sütun ile kapsayıcı coğrafyanın (ör. eyaletler veya metropol alanları) adlarını ya da coğrafi tanımlayıcılarını içeren sütun.

Hatırlatma olarak, Farklılık Endeksi formülü şöyledir:

$$D = \frac{1}{2}\sum{\left\lvert \frac{a}{A} - \frac{b}{B} \right\rvert}$$

pandas her zamanki kısaltmayla içe aktarıldı. Aşağıdaki kodda groupby ve merge adımları senin için hazır.

Bu egzersiz, kursun bir parçasıdır

Python ile ABD Nüfus Sayımı Verilerini Analiz Etme

Kursa Göz Atın

Egzersiz talimatları

  • Mutlak değer işaretlerinin içindeki ifadeyi formüle göre hesapla: \(A\) ve \(B\) için sütun adları, col_A ve col_B parametrelerine "_sum" soneki eklenerek oluşturulur
  • Tek bir sütunda sum metodu bir seri döndürür; seriyi DataFrame’e çevirmek için to_frame() metodunu kullan
  • Yeni fonksiyonu tracts üzerinde test et: MSA adına göre Beyaz-Siyah farklılığını (dissimilarity) hesapla

Uygulamalı etkileşimli egzersiz

Bu egzersizi bu örnek kodu tamamlayarak deneyin.

def dissimilarity(df, col_A, col_B, group_by):

    # Sum Group A and Group B by grouping column
    grouped_sums = df.groupby(group_by)[[col_A, col_B]].sum()
    tmp = pd.merge(df, grouped_sums, left_on = group_by, 
                   right_index = True, suffixes = ("", "_sum"))
    
    # Calculate inner expression
    tmp["D"] = abs(____)
    
    # Calculate Index of Dissimilarity and convert to DataFrame
    return 0.5 * tmp.groupby(group_by)["D"].sum().____
  
msa_D = dissimilarity(msa_tracts, ____, ____, "msa_name")
print(msa_D.head())
Kodu Düzenle ve Çalıştır