พื้นที่รหัสไปรษณีย์ (Zip Code Tabulation Areas)
ในแวดวงการตลาด การรู้ข้อมูลประชากรตามรหัสไปรษณีย์เป็นสิ่งที่ต้องการบ่อยมาก ZIP Code Tabulation Areas ("ZCTAs") คือพื้นที่ที่ Census กำหนดขึ้นให้เทียบเท่ากับรหัสไปรษณีย์ โดยสร้างจาก Census blocks ในแบบฝึกหัดนี้ จะขอข้อมูลประชากรรวมสำหรับ ZCTAs ทั้งหมดในรัฐ Alabama
ใน pandas สามารถใช้ index เพื่อดึงแถวที่ต้องการได้ โดย GEOID เหมาะสำหรับใช้เป็นตัวระบุแถว ในแบบฝึกหัดนี้ จะกำหนด multilevel index จากคอลัมน์ state และ ZCTA ของแต่ละแถว
นำเข้าแพ็กเกจ requests และ pandas ไว้แล้ว รวมถึงกำหนด base_url และพจนานุกรม predicates พร้อมรายการตัวแปรที่ต้องการขอข้อมูลเรียบร้อยแล้ว
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การวิเคราะห์ข้อมูลสำมะโนประชากรสหรัฐฯ ด้วย Python
คำแนะนำการฝึกหัด
- กำหนดคีย์
"for"ในพจนานุกรมpredicatesเพื่อดึงข้อมูล ZCTAs ทั้งหมด โดยสะกดชื่อภูมิศาสตร์ให้ครบเต็มเป็น"zip code tabulation area (or part)"" - กำหนดคีย์
"in"ในพจนานุกรมpredicatesเพื่อดึงข้อมูลเฉพาะ ZCTAs ในรัฐ Alabama เท่านั้น โดยต้องค้นหารหัส FIPS ของ Alabama จากแหล่งข้อมูลออนไลน์ที่ได้เรียนรู้มา - กำหนด index ของ DataFrame ให้เป็นการเชื่อมคอลัมน์
stateและzctaเข้าด้วยกัน ใช้inplace = Trueเพื่อไม่ให้สร้าง DataFrame ใหม่
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# 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())