关系建模与 PostgreSQL
定义表、主外键、类型与约束,先把不完美的导入保留在暂存表,再将有效记录转入正式数据层。
使用 PostgreSQL、pandas 与 NumPy,检查缺失值、核对键、关联表格,并根据合成幼教数据输出可信的汇总。
定义表、主外键、类型与约束,先把不完美的导入保留在暂存表,再将有效记录转入正式数据层。
练习 WHERE、IS NULL、GROUP BY、HAVING、窗口函数与 LEFT/INNER JOIN,对照关联前后行数,检查记录丢失或膨胀。
用 pandas 处理表格、isna()、重复检测、merge 验证与分组;用 NumPy 处理数值数组并明确处理 NaN。它们与数据库配合使用。
明确分母、保留记录、未知值与未匹配键,核对 SQL 和 Python 结果,解释缺失出勤与零出勤的区别。
建议具备 Python 入门与表格基础。可先单独学习 SQL,再在一对一在线课程中连接 Python 分析。
四个虚构中心与八条中心—周记录中,包含一条重复记录、一个缺失出勤、一个未知容量和一个未匹配中心 ID。数据中不包含真实儿童、家庭或机构。
CREATE TABLE centres (
centre_id TEXT PRIMARY KEY,
centre_name TEXT NOT NULL,
capacity INTEGER CHECK (capacity >= 0)
);
CREATE TABLE enrolments_raw (
source_row INTEGER PRIMARY KEY,
record_id TEXT NOT NULL,
centre_id TEXT NOT NULL,
week TEXT NOT NULL,
enrolled INTEGER NOT NULL,
attended INTEGER
);
INSERT INTO centres VALUES
('C01','Demo Centre A',24),('C02','Demo Centre B',20),
('C03','Demo Centre C',18),('C04','Demo Centre D',NULL);
INSERT INTO enrolments_raw VALUES
(1,'E01','C01','W1',20,18),(2,'E02','C02','W1',15,NULL),
(3,'E03','C03','W1',12,0),(4,'E04','C99','W1',8,6),
(5,'E05','C01','W2',21,19),(6,'E05','C01','W2',21,19),
(7,'E06','C02','W2',16,14),(8,'E07','C04','W1',9,8);
-- Keep staging records intact. Inspect repeats before choosing a policy.
CREATE VIEW enrolments_clean AS
SELECT source_row,record_id,centre_id,week,enrolled,attended
FROM (SELECT *, ROW_NUMBER() OVER
(PARTITION BY record_id ORDER BY source_row) AS occurrence
FROM enrolments_raw) ranked
WHERE occurrence = 1;
通过 PGlite,在浏览器独立线程的内存中运行真正的 PostgreSQL。首次使用加载约 15 MB。查询事务只读,重置会丢弃临时数据库,不涉及后端或数据上传。
按需加载 Python、pandas 和 NumPy,总计约 22 MB。这里会实际执行 Python 与六项样例核对。编辑只临时保留,刷新前请下载保存。
样例包含 8 条原始行、7 条唯一记录、6 条匹配的中心—周记录。未匹配的 C99 在 LEFT JOIN 审计中保持可见,但不进入中心汇总。
匹配数据合计 93 个登记儿童周与 59 个已知出勤儿童周。6 个出勤值中只有 5 个已观测,汇总值不是去重儿童人数。
B 中心的已观测平均出勤为 14。把缺失周替换成零会得到 7。容量未知时,不能据此计算有依据的满额率。
不应。本样例重复的是相同记录,并明确保留首个源行;有冲突的重复项需要约定复核规则,正式数据层应使用数据库约束保护。
-- NULL is not zero. COUNT(column) counts observed values.
SELECT COUNT(*) AS rows, COUNT(attended) AS observed,
AVG(attended) AS mean_observed
FROM enrolments_clean;探索澳洲移民数据案例:官方 SkillSelect 月度快照、保留隐藏值、独立州与分数切片、快照对比与报告下载。分析观察使用透明规则,不实时调用 LLM。
打开移民趋势观察站 ↗