-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgetaddress.py
More file actions
71 lines (61 loc) · 1.62 KB
/
Copy pathgetaddress.py
File metadata and controls
71 lines (61 loc) · 1.62 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Tue Sep 30 09:46:16 2025
@author: perkins
"""
import psycopg2
import pandas as pd
# ---- DB CONNECTION ----
conn = psycopg2.connect(
dbname="refm_db",
user="paulo_issler",
password="issler86",
host="192.168.0.125",
port="5432"
)
# ---- SQL QUERY ----
# Pull relevant fields from both tables
query = """
WITH t2024 AS (
SELECT dpid, fipscode, propertyfullstreetaddress, '2024'::text as source
FROM _bk_assessor.asmt_ct
),
t2025 AS (
SELECT dpid, fipscode, propertyfullstreetaddress, '2025'::text as source
FROM _bk_assessor_2025.asmt_ct
),
paired AS (
SELECT
COALESCE(t2024.dpid, t2025.dpid) AS dpid,
COALESCE(t2024.fipscode, t2025.fipscode) AS fipscode,
t2024.propertyfullstreetaddress AS addr_2024,
t2025.propertyfullstreetaddress AS addr_2025
FROM t2024
FULL OUTER JOIN t2025 USING (dpid, fipscode)
)
SELECT
p.dpid,
p.fipscode,
t2024.source,
t2024.propertyfullstreetaddress AS address
FROM paired p
JOIN t2024 ON p.dpid = t2024.dpid AND p.fipscode = t2024.fipscode
WHERE p.addr_2024 IS DISTINCT FROM p.addr_2025
UNION ALL
SELECT
p.dpid,
p.fipscode,
t2025.source,
t2025.propertyfullstreetaddress AS address
FROM paired p
JOIN t2025 ON p.dpid = t2025.dpid AND p.fipscode = t2025.fipscode
WHERE p.addr_2024 IS DISTINCT FROM p.addr_2025
ORDER BY fipscode, dpid, source;
"""
# ---- LOAD INTO PANDAS ----
df = pd.read_sql(query, conn)
# ---- WRITE TO CSV ----
df.to_csv("address_differences.csv", index=False)
print("Done! Output written to address_differences.csv")
conn.close()