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

डेटा को हिस्सों में लोड करने के लिए एक iterator लिखना (5)

यह आख़िरी चरण है. आपने बड़े डेटासेट को हिस्सों में प्रोसेस करना अच्छी तरह सीखा है. इस अंतिम अभ्यास में, आप डेटा प्रोसेसिंग का सारा कोड एक ही फंक्शन में डालेंगे ताकि आपको बार-बार वही चीज़ें लिखनी न पड़ें और आप कोड दोबारा उपयोग कर सकें.

आप plot_pop() नाम का फंक्शन परिभाषित करने जा रहे हैं जो दो आर्ग्युमेंट लेता है: प्रोसेस की जाने वाली फ़ाइल का फ़ाइलनाम, और उस डेटासेट में जिन पंक्तियों को प्रोसेस करना है उनका country code.

क्योंकि आपने पिछले अभ्यासों में जो भी कोड लिखा था, वह अब plot_pop() के अंदर होगा, इसलिए फंक्शन कॉल करने पर यह पहले से ही ये काम करता है:

  • फ़ाइल को chunk दर chunk लोड करना,
  • शहरी आबादी (urban population) मानों का नया कॉलम बनाना, और
  • शहरी आबादी के डेटा का plot बनाना.

यह काफ़ी काम है, लेकिन अब यह फंक्शन किसी भी फ़ाइल और country code के लिए वही प्रक्रिया दोहराना और visualize करना आसान बना देता है!

आप अपने current डायरेक्टरी में उपलब्ध 'ind_pop_data.csv' के डेटा का उपयोग करेंगे. पैकेज pandas और matplotlib.pyplot आपके लिए क्रमशः pd और plt के रूप में इम्पोर्ट किए जा चुके हैं.

समाप्त करने के बाद, plots को देखें और उन नई स्किल्स पर सोचें जो आपने सीखी हैं. यात्रा यहीं ख़त्म नहीं होती! अगर आपको इस डेटा के साथ काम करना अच्छा लगा, तो आप Kaggle पर उपलब्ध इसके pre-processed संस्करण का उपयोग करके आगे भी इसे explore कर सकते हैं.

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

Python टूलबॉक्स

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

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

  • plot_pop() फंक्शन परिभाषित करें जिसमें दो आर्ग्युमेंट हों: पहला filename (प्रोसेस की जाने वाली फ़ाइल के लिए) और दूसरा country_code (डेटासेट में प्रोसेस किए जाने वाले देश के लिए).
  • 'ind_pop_data.csv' फ़ाइल में country code 'CEB' के लिए डेटा प्रोसेस करने हेतु plot_pop() को कॉल करें.
  • 'ind_pop_data.csv' फ़ाइल में country code 'ARB' के लिए डेटा प्रोसेस करने हेतु plot_pop() को कॉल करें.

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

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

# Define plot_pop()
def ____(____, ____):

    # Initialize reader object: urb_pop_reader
    urb_pop_reader = pd.read_csv(filename, chunksize=1000)

    # Initialize empty DataFrame: data
    data = pd.DataFrame()
    
    # Iterate over each DataFrame chunk
    for df_urb_pop in urb_pop_reader:
        # Check out specific country: df_pop_ceb
        df_pop_ceb = df_urb_pop[df_urb_pop['CountryCode'] == country_code]

        # Zip DataFrame columns of interest: pops
        pops = zip(df_pop_ceb['Total Population'],
                    df_pop_ceb['Urban population (% of total)'])

        # Turn zip object into list: pops_list
        pops_list = list(pops)

        # Use list comprehension to create new DataFrame column 'Total Urban Population'
        df_pop_ceb['Total Urban Population'] = [int(tup[0] * tup[1] * 0.01) for tup in pops_list]
        
        # Concatenate DataFrame chunk to the end of data: data
        data = pd.concat([data, df_pop_ceb])

    # Plot urban population data
    data.plot(kind='scatter', x='Year', y='Total Urban Population')
    plt.show()

# Set the filename: fn
fn = 'ind_pop_data.csv'

# Call plot_pop for country code 'CEB'


# Call plot_pop for country code 'ARB'
कोड संपादित करें और चलाएँ