Menulis iterator untuk memuat data per potongan (3)
Sekarang Anda sudah terbiasa membaca dan memproses data per potongan. Mari tingkatkan sedikit keterampilan Anda dengan menambahkan sebuah kolom ke DataFrame.
Mulai dari kode pada latihan sebelumnya, Anda akan menggunakan list comprehension untuk membuat nilai bagi kolom baru 'Total Urban Population' dari daftar tuple yang telah Anda buat sebelumnya. Ingat dari latihan sebelumnya bahwa elemen pertama dan kedua dari setiap tuple masing-masing terdiri atas nilai dari kolom 'Total Population' dan 'Urban population (% of total)'. Nilai pada kolom baru 'Total Urban Population' ini, oleh karena itu, merupakan hasil kali antara elemen pertama dan kedua di setiap tuple. Selain itu, karena elemen kedua berupa persentase, Anda perlu membagi seluruh hasil dengan 100, atau sebagai alternatif, mengalikannya dengan 0.01.
Anda juga akan membuat plot dari data pada kolom baru ini untuk memvisualisasikan data populasi perkotaan.
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
Petunjuk latihan
- Tulis sebuah list comprehension untuk menghasilkan daftar nilai dari
pops_listbagi kolom baru'Total Urban Population'. Ekspresi keluaran harus berupa hasil kali dari elemen pertama dan kedua di setiap tuple dalampops_list. Karena elemen kedua adalah persentase, Anda juga perlu mengalikan hasilnya dengan0.01atau membaginya dengan100. Selain itu, perhatikan bahwa kolom'Total Urban Population'hanya boleh berisi nilai bilangan bulat. Untuk memastikan hal ini, pastikan Anda mengonversi ekspresi keluaran menjadi integer denganint(). - Buat plot scatter dengan sumbu-x dari nilai kolom
'Year'dan sumbu-y dari nilai kolom'Total Urban Population'.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
# 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()