डेटा को चंक्स में लोड करने के लिए एक iterator लिखना (3)
अब तक आप डेटा को चंक्स में पढ़ने और प्रोसेस करने के आदी हो चुके हैं. आइए एक कदम और आगे बढ़ते हैं और एक DataFrame में एक नया कॉलम जोड़ते हैं.
पिछले अभ्यास के कोड से आगे बढ़ते हुए, आप पहले जनरेट की गई tuples की सूची से नए कॉलम 'Total Urban Population' के मान बनाने के लिए एक list comprehension का उपयोग करेंगे. याद करें कि प्रत्येक tuple के पहले और दूसरे तत्व क्रमशः कॉलम 'Total Population' और 'Urban population (% of total)' से आते हैं. इसलिए नए कॉलम 'Total Urban Population' के मान इन दोनों तत्वों के गुणनफल होंगे. इसके अलावा, क्योंकि दूसरा तत्व प्रतिशत है, आपको पूरे परिणाम को 100 से भाग देना होगा या वैकल्पिक रूप से उसे 0.01 से गुणा करना होगा.
आप इस नए कॉलम के डेटा का प्लॉट भी बनाएँगे ताकि urban population डेटा का visualization तैयार हो सके.
पैकेज pandas और matplotlib.pyplot आपके लिए क्रमशः pd और plt नाम से इम्पोर्ट किए जा चुके हैं.
यह अभ्यास पाठ्यक्रम का हिस्सा है
Python टूलबॉक्स
अभ्यास निर्देश
pops_listसे नए कॉलम'Total Urban Population'के लिए मानों की सूची बनाने हेतु एक list comprehension लिखें. output expression कोpops_listके प्रत्येक tuple के पहले और दूसरे तत्व के गुणनफल के रूप में रखें. क्योंकि दूसरा तत्व प्रतिशत है, परिणाम को0.01से गुणा करें या100से भाग दें. साथ ही ध्यान दें कि कॉलम'Total Urban Population'में केवल integer मान होने चाहिए. इसे सुनिश्चित करने के लिए output expression कोint()से कास्ट करें.- एक scatter प्लॉट बनाएँ, जिसमें x-axis पर
'Year'कॉलम के मान हों और y-axis पर'Total Urban Population'कॉलम के मान.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
# Code from previous exercise
urb_pop_reader = pd.read_csv('ind_pop_data.csv', chunksize=1000)
df_urb_pop = next(urb_pop_reader)
df_pop_ceb = df_urb_pop[df_urb_pop['CountryCode'] == 'CEB']
pops = zip(df_pop_ceb['Total Population'],
df_pop_ceb['Urban population (% of total)'])
pops_list = list(pops)
# Use list comprehension to create new DataFrame column 'Total Urban Population'
df_pop_ceb['Total Urban Population'] = [____]
# Plot urban population data
df_pop_ceb.plot(kind=____, x=____, y=____)
plt.show()