Viết một iterator để tải dữ liệu theo từng phần (2)
Trong bài trước, bạn đã dùng read_csv() để đọc các phần (chunk) DataFrame từ một tập dữ liệu lớn. Ở bài này, bạn sẽ đọc một tệp với kích thước phần DataFrame lớn hơn và sau đó xử lý dữ liệu từ phần đầu tiên.
Để xử lý dữ liệu, bạn sẽ tạo một DataFrame khác chỉ gồm các hàng của một quốc gia cụ thể. Sau đó, bạn sẽ zip hai cột của DataFrame mới, 'Total Population' và 'Urban population (% of total)'. Cuối cùng, bạn sẽ tạo một danh sách các tuple từ đối tượng zip, trong đó mỗi tuple gồm một giá trị từ mỗi trong hai cột nêu trên.
Bạn sẽ sử dụng dữ liệu từ 'ind_pop_data.csv', có sẵn trong thư mục hiện tại. pandas đã được import là pd.
Bài tập này là một phần của khóa học
Hộp Công Cụ Python
Hướng dẫn bài tập
- Dùng
pd.read_csv()để đọc tệp'ind_pop_data.csv'theo từng phần có kích thước1000. Gán kết quả chourb_pop_reader. - Lấy phần DataFrame đầu tiên từ iterable
urb_pop_readervà gán chodf_urb_pop. - Chỉ chọn các hàng của
df_urb_popcó'CountryCode'là'CEB'. Để làm điều này, so sánh xemdf_urb_pop['CountryCode']có bằng'CEB'trong dấu ngoặc vuông củadf_urb_pop[____]hay không. - Dùng
zip()để ghép hai cột'Total Population'và'Urban population (% of total)'củadf_pop_ceb. Gán đối tượng zip thu được chopops.
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(____, ____)
# Get the first DataFrame chunk: df_urb_pop
df_urb_pop = next(____)
# Check out the head of the DataFrame
print(df_urb_pop.head())
# Check out specific country: df_pop_ceb
df_pop_ceb = df_urb_pop[____]
# Zip DataFrame columns of interest: pops
pops = zip(____, ____)
# Turn zip object into list: pops_list
pops_list = list(pops)
# Print pops_list
print(pops_list)