Pandas में Grouping से D की गणना
DataFrame के उपसमूहों पर कैलकुलेशन इतना आम है कि pandas हमें loop की जगह एक विकल्प देता है: groupby मेथड। सैंपल कोड में, groupby का उपयोग पहले tracts को state के अनुसार ग्रुप करने के लिए किया गया है, यानी "state" कॉलम में समान मान वाली पंक्तियाँ एक साथ ली गई हैं। कॉलम्स पर sum() मेथड को प्रत्येक ग्रुप पर लागू किया गया है.
इस अभ्यास में merge का भी उपयोग है, जो एक और उपयोगी pandas मेथड है, ताकि grouped sums को individual tracts से जोड़ा जा सके। अभी सिंटैक्स की चिंता न करें। merge की विस्तार से चर्चा आगे के लेसन में की जाएगी.
pandas को usual alias के साथ इम्पोर्ट किया गया है, और white तथा black population कॉलम्स वाला tracts DataFrame लोड किया गया है। वैरिएबल w और b को क्रमशः "white" और "black" कॉलम नामों के साथ परिभाषित किया गया है.
यह अभ्यास पाठ्यक्रम का हिस्सा है
Python में US Census डेटा का विश्लेषण
अभ्यास निर्देश
groupbyका उपयोग करकेsums_by_stateबनाइए और परिणाम प्रिंट कीजिए.mergeका उपयोग करकेtractsबनाइए और परिणाम प्रिंट कीजिए.- \(\left\lvert\frac{a_i}{A} - \frac{b_i}{B}\right\rvert\) की गणना कीजिए और उसे नए कॉलम
Dमें स्टोर कीजिए। (स्मरण: White और Black आबादी के योग (\(A\) और \(B\)) पहले ही निकाले जा चुके हैं औरtractsDataFrame में"_sum"suffix वाले कॉलम्स में उपलब्ध हैं.) groupbyमेथड का उपयोग करके state के अनुसार कॉलमDका sum लीजिए, और उसे0.5से गुणा कीजिए.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
# 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())