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

Viết một iterator để tải dữ liệu theo từng khối (4)

Trong các bài trước, bạn chỉ xử lý dữ liệu từ khối DataFrame đầu tiên. Lần này, bạn sẽ tổng hợp kết quả trên tất cả các khối DataFrame trong toàn bộ tập dữ liệu. Nói cách khác, bây giờ bạn sẽ xử lý toàn bộ tập dữ liệu. Điều này rất hay vì bạn có thể xử lý một tập dữ liệu lớn chỉ bằng cách làm việc với những phần nhỏ của nó!

Bạn sẽ dùng dữ liệu từ 'ind_pop_data.csv', có sẵn trong thư mục hiện tại. Các gói pandasmatplotlib.pyplot đã được import 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

  • Khởi tạo một DataFrame trống data bằng pd.DataFrame().
  • Trong vòng lặp for, lặp qua urb_pop_reader để có thể xử lý tất cả các khối DataFrame trong tập dữ liệu.
  • Nối datadf_pop_ceb bằng cách truyền một danh sách các DataFrame vào pd.concat().

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.

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