MulaiMulai sekarang secara gratis

Dari API ke Visualisasi: Group Quarters

Dalam latihan ini, Anda akan menelusuri lokasi tempat pelaku kejahatan remaja ditahan. Latihan ini memperkenalkan konsep populasi "group quarters", yang mencakup asrama kampus, lembaga pemasyarakatan, panti wreda, pangkalan militer, dan sebagainya.

Anda akan memvisualisasikan persentase, per negara bagian, anak laki-laki yang merupakan minor yang ditahan di fasilitas pemasyarakatan dewasa. Variabel yang perlu diminta adalah:

  • PCT021005 - Laki-laki: Di bawah 18 tahun: Populasi yang diinstitusikan: Fasilitas pemasyarakatan untuk dewasa
  • PCT021015 - Laki-laki: Di bawah 18 tahun: Populasi yang diinstitusikan: Fasilitas remaja: Fasilitas pemasyarakatan untuk remaja

requests telah diimpor. base_url untuk permintaan API telah ditetapkan.

pandas dan seaborn telah diimpor menggunakan alias yang biasa.

Latihan ini adalah bagian dari kursus

Menganalisis Data Sensus AS dengan Python

Lihat Kursus

Petunjuk latihan

  • Lengkapi daftar get_vars dengan dua variabel yang diinginkan
  • Gunakan astype untuk mengonversi kolom in_adult dan in_juvenile menjadi integer
  • Hitung persentase minor di fasilitas pemasyarakatan untuk dewasa: pembilang harus 100 kali jumlah minor di fasilitas pemasyarakatan in_adult; penyebut harus jumlah minor di fasilitas pemasyarakatan in_adult dan in_juvenile
  • Urutkan states berdasarkan pct_in_adult secara menurun, dengan menggunakan inplace = True

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

# 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()
Edit dan Jalankan Kode