Vùng Tổng hợp Mã ZIP (ZCTA)
Trong lĩnh vực marketing, nhu cầu tìm hiểu nhân khẩu học theo Mã ZIP là rất phổ biến. Zip Code Tabulation Areas ("ZCTA") là các đơn vị tương đương Mã ZIP do Census xác định, được ghép từ các khối Census. Ở bài này, bạn sẽ yêu cầu tổng dân số cho tất cả ZCTA trong bang Alabama.
Trong pandas, chỉ mục (index) có thể dùng để truy xuất các dòng cụ thể. GEOID là các định danh dòng phù hợp. Trong bài này, bạn sẽ đặt chỉ mục đa cấp dựa trên bang (state) và ZCTA của mỗi dòng.
Các gói requests và pandas đã được nhập. base_url đã được định nghĩa, cũng như từ điển predicates với danh sách biến cần yêu cầu.
Bài tập này là một phần của khóa học
Phân tích dữ liệu Điều tra Dân số Hoa Kỳ bằng Python
Hướng dẫn bài tập
- Đặt khóa
"for"trong dictpredicatesđể trả về mọi ZCTA; viết đầy đủ địa lý là"zip code tabulation area (or part)"" - Đặt khóa
"in"trong dictpredicatesđể chỉ trả về các ZCTA thuộc bang Alabama; bạn sẽ phải tra mã FIPS của Alabama từ một trong các nguồn trực tuyến bạn đã học - Đặt chỉ mục DataFrame là phép nối của các cột
statevàzcta. Dùnginplace = Trueđể không tạo DataFrame mới.
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.
# Build dictionary of predicates and execute the request
predicates = {}
predicates["get"] = ",".join(["NAME", "P001001"])
____
____
r = requests.get(base_url, params=predicates)
# Construct the DataFrame
col_names = ["name", "total_pop", "state", "zcta"]
zctas = pd.DataFrame(columns=col_names, data=r.json()[1:])
zctas["total_pop"] = zctas["total_pop"].astype(int)
# Set multilevel index from GEOIDs and print the head
zctas.set_index([____, ____], inplace = True)
print(zctas.head())