docs/cities/miami/probe/ccd_probe.py
Served verbatim from the project repository. Internal working document conventions apply: documents may reference file paths, branch names, and findings-ledger anchors from the repo.
import os as _os; _os.chdir(_os.environ.get("MIAMI_PROBE_DIR", "data/cities/miami/sources/_probe"))
import pandas as pd, sys
base = "ccd/unz_ccd_sch_029_2324_w_1a_073124/ccd_sch_029_2324_w_1a_073124.csv"
d = pd.read_csv(base, dtype=str, low_memory=False, encoding="latin1")
print("directory columns:", list(d.columns))
fl = d[(d.ST=="FL")]
mdc = fl[fl.LEA_NAME.str.contains("DADE", case=False, na=False)]
print("\nLEA rows containing DADE:", mdc[["LEAID","ST_LEAID","LEA_NAME"]].drop_duplicates().to_dict("records"))
m = fl[fl.ST_LEAID=="FL-13"]
print("\nMiami-Dade (ST_LEAID FL-13) schools:", len(m), " LEAID:", m.LEAID.unique())
for col in ["SY_STATUS_TEXT","SCH_TYPE_TEXT","CHARTER_TEXT","LEVEL","VIRTUAL_TEXT","UPDATED_STATUS_TEXT"]:
if col in m: print("\n", col, "\n", m[col].value_counts(dropna=False).to_string())
open_ = m[m.SY_STATUS_TEXT.str.contains("Open|New|Reopened|Changed", na=False)]
print("\nopen-ish schools:", len(open_))
print("\ncrosstab charter x level (open-ish):\n", pd.crosstab(open_.CHARTER_TEXT, open_.LEVEL).to_string())
print("\ncrosstab charter x SCH_TYPE (open-ish):\n", pd.crosstab(open_.CHARTER_TEXT, open_.SCH_TYPE_TEXT).to_string())
print("\nST_SCHID samples:", m.ST_SCHID.head(8).tolist())
print("NCESSCH samples:", m.NCESSCH.head(4).tolist())
print("grade span cols:", [c for c in m.columns if c.startswith("G_") or c in ("GSLO","GSHI")][:30])
print("GSLO/GSHI sample:", m[["GSLO","GSHI"]].drop_duplicates().head(15).values.tolist())
# state school number pattern
st = m.ST_SCHID.str.extract(r"FL-13-(\d+)")[0]
print("state school number length dist:", st.str.len().value_counts().to_dict())
print("charter school-number ranges:", pd.to_numeric(open_[open_.CHARTER_TEXT=="Yes"].ST_SCHID.str.extract(r"FL-13-(\d+)")[0]).describe()[["min","25%","50%","75%","max"]].to_dict())
print("non-charter school-number ranges:", pd.to_numeric(open_[open_.CHARTER_TEXT=="No"].ST_SCHID.str.extract(r"FL-13-(\d+)")[0]).describe()[["min","25%","50%","75%","max"]].to_dict())
ch = pd.read_csv("ccd/unz_ccd_sch_059_2324_l_1a_073124/ccd_sch_059_2324_l_1a_073124.csv", dtype=str, low_memory=False, encoding="latin1")
print("\ncharacteristics columns:", list(ch.columns))
chm = ch[ch.ST_LEAID=="FL-13"]
print("char rows for MDC:", len(chm))
for col in ["TITLEI_STATUS_TEXT","MAGNET_TEXT","VIRTUAL_TEXT","SHARED_TIME","NSLP_STATUS_TEXT"]:
if col in chm: print("\n", col, "\n", chm[col].value_counts(dropna=False).to_string())
lu = pd.read_csv("ccd/unz_ccd_sch_033_2324_l_1a_073124/ccd_sch_033_2324_l_1a_073124.csv", dtype=str, low_memory=False, encoding="latin1")
print("\nlunch columns:", list(lu.columns))
lum = lu[lu.ST_LEAID=="FL-13"]
print("lunch rows for MDC:", len(lum))
for col in ["LUNCH_PROGRAM","DATA_GROUP"]:
if col in lum: print("\n", col, "\n", lum[col].value_counts(dropna=False).head(12).to_string())
print(lum.head(6).to_string())