शुरू करेंमुफ़्त में शुरू करें

D गणना करने के लिए फंक्शन बनाएँ

Index of Dissimilarity की गणना कई चरणों में होती है और इसे बार-बार उपयोग किया जा सकता है। इस अभ्यास में आप dissimilarity नाम का फंक्शन बनाएँगे, जिसे आपने पिछले अभ्यास में इस्तेमाल किया था। फंक्शन के इनपुट पैरामीटर होंगे: छोटे क्षेत्रों (जैसे tracts) का एक DataFrame और तीन कॉलम नाम—दो कॉलम Group A और Group B की आबादी की गिनती वाले, और एक कॉलम जिसमें कंटेनर जियोग्राफी (जैसे states या metro areas) के नाम या जियोग्राफिक आइडेंटिफ़ायर हों।

याद दिलाने के लिए, Index of Dissimilarity का फ़ॉर्मूला है:

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

pandas को सामान्य उपनाम के साथ इम्पोर्ट किया जा चुका है। नीचे दिए गए कोड में groupby और merge पहले से किए हुए हैं।

यह अभ्यास पाठ्यक्रम का हिस्सा है

Python में US Census डेटा का विश्लेषण

पाठ्यक्रम देखें

अभ्यास निर्देश

  • फ़ॉर्मूला के आधार पर absolute value बार्स के अंदर की अभिव्यक्ति की गणना करें: \(A\) और \(B\) के कॉलम नाम col_A और col_B पैरामीटर में "_sum" सुффिक्स जोड़कर बनते हैं
  • किसी एक कॉलम पर sum मेथड एक series लौटाता है; series को DataFrame में बदलने के लिए to_frame() मेथड का उपयोग करें
  • नए फंक्शन को tracts पर टेस्ट करें: MSA नाम के अनुसार White-Black dissimilarity की गणना करें

इंटरैक्टिव व्यावहारिक अभ्यास

इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।

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())
कोड संपादित करें और चलाएँ