Bắt đầu ngayBắt đầu miễn phí

Viết một iterator để tải dữ liệu theo từng phần (3)

Đến giờ bạn đã quen với việc đọc và xử lý dữ liệu theo từng phần. Hãy nâng thêm một bậc bằng cách thêm một cột vào DataFrame.

Bắt đầu từ mã của bài trước, bạn sẽ dùng một list comprehension để tạo giá trị cho cột mới 'Total Urban Population' từ danh sách các bộ giá trị (tuple) mà bạn đã tạo trước đó. Nhớ rằng trong bài trước, phần tử thứ nhất và thứ hai của mỗi tuple lần lượt là giá trị từ các cột 'Total Population''Urban population (% of total)'. Vì vậy, các giá trị trong cột mới 'Total Urban Population' sẽ là tích của phần tử thứ nhất và phần tử thứ hai trong mỗi tuple. Hơn nữa, vì phần tử thứ hai là phần trăm, bạn cần chia toàn bộ kết quả cho 100, hoặc nhân với 0.01.

Bạn cũng sẽ vẽ dữ liệu từ cột mới này để trực quan hóa dữ liệu dân số đô thị.

Các gói pandasmatplotlib.pyplot đã được nhập lần lượt là pdplt để bạn sử dụng.

Bài tập này là một phần của khóa học

Hộp Công Cụ Python

Xem khóa học

Hướng dẫn bài tập

  • Viết một list comprehension để tạo danh sách giá trị từ pops_list cho cột mới 'Total Urban Population'. Biểu thức đầu ra phải là tích của phần tử thứ nhất và phần tử thứ hai trong mỗi tuple của pops_list. Vì phần tử thứ hai là phần trăm, bạn cần nhân kết quả với 0.01 hoặc chia cho 100. Ngoài ra, lưu ý rằng cột 'Total Urban Population' chỉ nên nhận giá trị kiểu số nguyên. Để đảm bảo điều này, hãy ép kiểu biểu thức đầu ra sang số nguyên bằng int().
  • Tạo biểu đồ scatter trong đó trục x là các giá trị từ cột 'Year' và trục y là các giá trị từ cột 'Total Urban Population'.

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

# 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()
Chỉnh sửa và Chạy Mã