Xử lý dữ liệu theo lô (1)
Đôi khi, nguồn dữ liệu có thể lớn đến mức việc lưu toàn bộ tập dữ liệu trong bộ nhớ trở nên quá tốn tài nguyên. Trong bài tập này, bạn sẽ xử lý 1000 dòng đầu tiên của một tệp theo từng dòng, để tạo một từ điển đếm số lần mỗi quốc gia xuất hiện trong một cột của tập dữ liệu.
Tệp csv 'world_dev_ind.csv' đang có sẵn trong thư mục hiện tại để bạn sử dụng. Để bắt đầu, bạn cần mở kết nối tới tệp này bằng trình quản lý ngữ cảnh (context manager). Ví dụ, lệnh with open('datacamp.csv') as datacamp sẽ liên kết tệp csv 'datacamp.csv' với tên datacamp trong trình quản lý ngữ cảnh. Ở đây, câu lệnh with là trình quản lý ngữ cảnh, và mục đích của nó là đảm bảo cấp phát tài nguyên hiệu quả khi mở kết nối tới một tệp.
Nếu bạn muốn tìm hiểu thêm về trình quản lý ngữ cảnh, hãy xem khóa học Importing Data in Python trên DataCamp.
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
open()để liên kết tệp csv'world_dev_ind.csv'với tênfiletrong trình quản lý ngữ cảnh. - Hoàn thiện vòng lặp
forđể nó lặp 1000 lần nhằm thực thi thân vòng lặp và chỉ xử lý 1000 dòng dữ liệu đầu tiên của tệp.
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.
# Open a connection to the file
with ____ as ____:
# Skip the column names
file.readline()
# Initialize an empty dictionary: counts_dict
counts_dict = {}
# Process only the first 1000 rows
for j in ____:
# Split the current line into a list: line
line = file.readline().split(',')
# Get the value for the first column: first_col
first_col = line[0]
# If the column value is in the dict, increment its value
if first_col in counts_dict.keys():
counts_dict[first_col] += 1
# Else, add to the dict and set value to 1
else:
counts_dict[first_col] = 1
# Print the resulting dictionary
print(counts_dict)