MulaiMulai sekarang secara gratis

Menulis iterator untuk memuat data per bagian (5)

Ini adalah tahap terakhir. Anda telah mempelajari banyak hal tentang memproses himpunan data besar secara bertahap (per bagian). Pada latihan terakhir ini, Anda akan menempatkan seluruh kode pemrosesan data ke dalam satu fungsi sehingga Anda dapat menggunakannya kembali tanpa perlu menulis ulang hal yang sama berulang kali.

Anda akan mendefinisikan fungsi plot_pop() yang menerima dua argumen: nama berkas yang akan diproses, dan kode negara dari baris yang ingin Anda proses dalam himpunan data.

Karena semua kode yang telah Anda tulis pada latihan sebelumnya akan dimasukkan ke dalam plot_pop(), pemanggilan fungsi ini akan melakukan hal-hal berikut:

  • Memuat berkas secara bertahap per bagian (chunk),
  • Membuat kolom baru berisi nilai populasi perkotaan, dan
  • Membuat plot data populasi perkotaan.

Itu banyak pekerjaan, tetapi fungsi ini kini memudahkan Anda untuk mengulangi proses yang sama untuk berkas dan kode negara mana pun yang ingin Anda proses dan visualisasikan!

Anda akan menggunakan data dari 'ind_pop_data.csv' yang tersedia di direktori saat ini. Paket pandas dan matplotlib.pyplot telah diimpor masing-masing sebagai pd dan plt untuk Anda gunakan.

Setelah selesai, luangkan waktu sejenak untuk melihat plot dan renungkan keterampilan baru yang telah Anda peroleh. Perjalanan tidak berhenti di sini! Jika Anda menikmati bekerja dengan data ini, Anda dapat terus mengeksplorasinya menggunakan versi pra-proses yang tersedia di Kaggle.

Latihan ini adalah bagian dari kursus

Kotak Perkakas Python

Lihat Kursus

Petunjuk latihan

  • Definisikan fungsi plot_pop() dengan dua argumen: pertama filename untuk berkas yang akan diproses dan kedua country_code untuk negara yang akan diproses dalam himpunan data.
  • Panggil plot_pop() untuk memproses data dengan kode negara 'CEB' pada berkas 'ind_pop_data.csv'.
  • Panggil plot_pop() untuk memproses data dengan kode negara 'ARB' pada berkas 'ind_pop_data.csv'.

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

# 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'
Edit dan Jalankan Kode