ÎncepețiÎncepe gratuit

Creează o funcție pentru calculul lui D

Calcularea Indicelui de Disimilaritate implică mai mulți pași și poate fi reutilizată frecvent. În acest exercițiu vei crea funcția dissimilarity pe care am folosit-o în exercițiul anterior. Parametrii de intrare ai funcției vor fi un DataFrame cu arii geografice mici (cum ar fi tract-urile) și trei nume de coloane: cele două coloane cu numărul de persoane din Grupul A și Grupul B, și coloana cu numele sau identificatorii geografici ai ariei-container (cum ar fi statele sau zonele metropolitane).

Ca reminder, formula Indicelui de Disimilaritate este:

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

pandas a fost importat cu aliasul obișnuit. Operațiile groupby și merge sunt deja completate în codul de mai jos.

Acest exercițiu face parte din cursul

Analiza datelor recensământului SUA în Python

Vezi cursul

Instrucțiuni pentru exercițiu

  • Calculează expresia din interiorul barelor de valoare absolută pe baza formulei: numele coloanelor pentru \(A\) și \(B\) se formează adăugând sufixul "_sum" la parametrii col_A și col_B
  • Metoda sum aplicată pe o singură coloană returnează o serie; folosește metoda to_frame() pentru a converti seria într-un DataFrame
  • Testează noua funcție pe tracts: calculează disimilaritatea Alb-Negru după numele MSA

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

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())
Editează și rulează codul