MulaiMulai sekarang secara gratis

Menulis iterator untuk memuat data per bagian (4)

Pada latihan sebelumnya, Anda hanya memproses data dari potongan DataFrame pertama. Kali ini, Anda akan mengagregasikan hasil dari semua potongan DataFrame dalam himpunan data. Ini berarti Anda akan memproses seluruh himpunan data sekarang. Ini menarik karena Anda dapat memproses himpunan data besar hanya dengan bekerja pada bagian-bagian kecilnya!

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.

Latihan ini adalah bagian dari kursus

Kotak Perkakas Python

Lihat Kursus

Petunjuk latihan

  • Inisialisasi DataFrame kosong data menggunakan pd.DataFrame().
  • Dalam loop for, iterasikan urb_pop_reader agar dapat memproses semua potongan DataFrame dalam himpunan data.
  • Gabungkan data dan df_pop_ceb dengan meneruskan daftar DataFrame ke pd.concat().

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

# Initialize reader object: urb_pop_reader
urb_pop_reader = pd.read_csv('ind_pop_data.csv', chunksize=1000)

# Initialize empty DataFrame: data
data = ____

# Iterate over each DataFrame chunk
for df_urb_pop in ____:

    # Check out specific country: df_pop_ceb
    df_pop_ceb = df_urb_pop[df_urb_pop['CountryCode'] == 'CEB']

    # 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 = ____

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