จาก API สู่การแสดงผล: กลุ่มประชากรในสถานที่พักอาศัยพิเศษ
ในแบบฝึกหัดนี้ เราจะสำรวจข้อมูลว่าผู้กระทำผิดที่เป็นเยาวชนถูกคุมขังอยู่ที่ใดบ้าง แบบฝึกหัดนี้แนะนำแนวคิดเกี่ยวกับประชากรใน "กลุ่มสถานที่พักอาศัยพิเศษ" (group quarters) ซึ่งรวมถึงหอพักมหาวิทยาลัย สถานที่ควบคุมตัว บ้านพักคนชรา ฐานทัพทหาร และอื่นๆ
เราจะแสดงผลด้วยภาพว่าในแต่ละรัฐ มีเปอร์เซ็นต์เท่าใดของผู้ชาย อายุน้อยกว่า 18 ปี ที่ถูกคุมขังใน สถานที่ควบคุมตัวสำหรับผู้ใหญ่ ตัวแปรที่ต้องดึงข้อมูลได้แก่:
- PCT021005 - เพศชาย: อายุต่ำกว่า 18 ปี: ประชากรในสถาบัน: สถานที่ควบคุมตัวสำหรับผู้ใหญ่
- PCT021015 - เพศชาย: อายุต่ำกว่า 18 ปี: ประชากรในสถาบัน: สถานที่สำหรับเยาวชน: สถานที่ควบคุมตัวสำหรับเยาวชน
ได้นำเข้า requests แล้ว และกำหนด base_url สำหรับการร้องขอ API ไว้แล้ว
ได้นำเข้า pandas และ seaborn โดยใช้ชื่อแทนตามปกติแล้ว
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การวิเคราะห์ข้อมูลสำมะโนประชากรสหรัฐฯ ด้วย Python
คำแนะนำการฝึกหัด
- เติมค่าในลิสต์
get_varsด้วยตัวแปรทั้งสองที่ต้องการ - ใช้
astypeเพื่อแปลงคอลัมน์in_adultและin_juvenileให้เป็นจำนวนเต็ม - คำนวณเปอร์เซ็นต์ของผู้เยาว์ในสถานที่ควบคุมตัวสำหรับผู้ใหญ่ โดยตัวเศษคือจำนวนผู้เยาว์
in_adultคูณด้วย 100 และตัวส่วนคือผลรวมของผู้เยาว์in_adultและin_juvenile - เรียงลำดับ
statesตามpct_in_adultจากมากไปน้อย โดยใช้inplace = True
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Specify variables and execute API request
get_vars = ["NAME", ____]
predicates["get"] = ",".join(get_vars)
r = requests.get(base_url, params=predicates)
# Construct DataFrame
col_names = ["name", "in_adult", "in_juvenile", "state"]
states = pd.DataFrame(columns=col_names, data=r.json()[1:])
states[["in_adult", "in_juvenile"]] = states[["in_adult", "in_juvenile"]].____
# Calculate percentage of incarcerated male minors in adult facilities
states["pct_in_adult"] = ____
states.sort_values(by = ____, ascending = ____, inplace = ____)
sns.stripplot(x = "pct_in_adult", y = "name", data = states)
plt.show()