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

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

Kursa Göz Atın

Egzersiz talimatları

  • groupby kullanarak sums_by_state oluştur ve sonucu yazdır.
  • merge kullanarak tracts oluştur ve sonucu yazdır.
  • \(\left\lvert\frac{a_i}{A} - \frac{b_i}{B}\right\rvert\) değerini hesaplayıp yeni bir D sütununda sakla. (Hatırlatma: Beyaz ve Siyah nüfusların toplamı (\(A\) ve \(B\)) daha önce hesaplandı ve tracts DataFrame'inde "_sum" soneki olan sütunlarda mevcut.)
  • groupby yöntemiyle D sütununu eyalete göre topla ve 0.5 ile ç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())
Kodu Düzenle ve Çalıştır