Pandas'ta Gruplama ile D Hesaplama
Bir DataFrame'in alt kümeleri üzerinde hesaplama yapmak o kadar yaygındır ki, pandas bunu döngüyle yapmaya alternatif olarak groupby yöntemini sunar. Örnek koddaki groupby, ilk olarak tracts'i eyalete göre gruplamak için kullanılır; yani "state" sütununda aynı değere sahip satırlar bir araya getirilir. Ardından sum() yöntemi sütunlara, her bir grup için ayrı ayrı uygulanır.
Bu egzersizde ayrıca gruplandırılmış toplamları tekil tracts satırlarıyla birleştirmek için, başka bir kullanışlı pandas yöntemi olan merge de kullanılıyor. Şimdilik sözdizimi için endişelenme; merge ilerleyen bir derste açıklanacak.
pandas her zamanki kısaltmayla içe aktarıldı ve nüfus sütunları white ve black olan tracts DataFrame'i yüklendi. w ve b değişkenleri, sırasıyla "white" ve "black" sütun adlarıyla tanımlandı.
Bu egzersiz, kursun bir parçasıdır
Python ile ABD Nüfus Sayımı Verilerini Analiz Etme
Egzersiz talimatları
groupbykullanaraksums_by_stateoluştur ve sonucu yazdır.mergekullanaraktractsoluştur ve sonucu yazdır.- \(\left\lvert\frac{a_i}{A} - \frac{b_i}{B}\right\rvert\) değerini hesaplayıp yeni bir
Dsütununda sakla. (Hatırlatma: Beyaz ve Siyah nüfusların toplamı (\(A\) ve \(B\)) daha önce hesaplandı vetractsDataFrame'inde"_sum"soneki olan sütunlarda mevcut.) groupbyyöntemiyleDsütununu eyalete göre topla ve0.5ile çarp.
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
# Sum Black and White residents grouped by state
sums_by_state = tracts.groupby("state")[[w, b]].sum()
print(sums_by_state.head())
# Merge the sum with the original tract populations
tracts = pd.merge(tracts, sums_by_state, left_on = "state",
right_index = True, suffixes = ("", "_sum"))
print(tracts.head())
# Calculate inner expression of Index of Dissimilarity formula
tracts["D"] = abs(tracts[____] / tracts[____ + "_sum"] - ____ / ____)
# Calculate the Index of Dissimilarity
print(0.5 * tracts.____(____)["D"].sum())