Skip to content

Commit c5aa2cd

Browse files
committed
Add HHS mappings
1 parent e1546d9 commit c5aa2cd

File tree

3 files changed

+47527
-0
lines changed

3 files changed

+47527
-0
lines changed

_delphi_utils_python/data_proc/geomap/geo_data_proc.py

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
FIPS_MSA_OUT_FILENAME = "fips_msa_table.csv"
3535
FIPS_HRR_OUT_FILENAME = "fips_hrr_table.csv"
3636
FIPS_ZIP_OUT_FILENAME = "fips_zip_table.csv"
37+
FIPS_HHS_FILENAME = "fips_hhs_table.csv"
3738
FIPS_POPULATION_OUT_FILENAME = "fips_pop.csv"
3839

3940
ZIP_HSA_OUT_FILENAME = "zip_hsa_table.csv"
@@ -42,6 +43,7 @@
4243
ZIP_MSA_OUT_FILENAME = "zip_msa_table.csv"
4344
ZIP_POPULATION_OUT_FILENAME = "zip_pop.csv"
4445
ZIP_STATE_CODE_OUT_FILENAME = "zip_state_code_table.csv"
46+
ZIP_HHS_FILENAME = "zip_hhs_table.csv"
4547
STATE_OUT_FILENAME = "state_codes_table.csv"
4648
STATE_HHS_OUT_FILENAME = "state_code_hhs_region_number_table.csv"
4749
JHU_FIPS_OUT_FILENAME = "jhu_uid_fips_table.csv"
@@ -531,6 +533,55 @@ def derive_zip_to_state_code():
531533
)
532534

533535

536+
def derive_fips_hhs_crosswalk():
537+
"""
538+
Builds a crosswalk between FIPS county codes and HHS regions.
539+
"""
540+
if not isfile(join(OUTPUT_DIR, STATE_HHS_OUT_FILENAME)):
541+
create_state_hhs_crosswalk()
542+
if not isfile(join(OUTPUT_DIR, FIPS_POPULATION_OUT_FILENAME)):
543+
create_fips_population_table()
544+
545+
fips_pop = pd.read_csv(
546+
join(OUTPUT_DIR, FIPS_POPULATION_OUT_FILENAME), dtype={"fips": str, "pop": int}
547+
)
548+
state_hhs = pd.read_csv(
549+
join(OUTPUT_DIR, STATE_HHS_OUT_FILENAME),
550+
dtype={"state_code": str, "state_id": str, "state_name": str},
551+
)
552+
553+
fips_pop["state_code"] = fips_pop["fips"].str[:2]
554+
(
555+
fips_pop.merge(state_hhs, on="state_code", how="left")
556+
.drop(columns="pop")
557+
.to_csv(join(OUTPUT_DIR, FIPS_HHS_FILENAME), index=False)
558+
)
559+
560+
561+
def derive_zip_hhs_crosswalk():
562+
"""
563+
Builds a crosswalk between zip code and HHS regions.
564+
"""
565+
if not isfile(join(OUTPUT_DIR, STATE_HHS_OUT_FILENAME)):
566+
create_state_hhs_crosswalk()
567+
if not isfile(join(OUTPUT_DIR, ZIP_STATE_CODE_OUT_FILENAME)):
568+
derive_zip_to_state_code()
569+
570+
zip_state = pd.read_csv(
571+
join(OUTPUT_DIR, ZIP_STATE_CODE_OUT_FILENAME),
572+
dtype={"fips": str, "pop": int, "state_code": str}
573+
)
574+
state_hhs = pd.read_csv(
575+
join(OUTPUT_DIR, STATE_HHS_OUT_FILENAME),
576+
dtype={"state_code": str, "state_id": str, "state_name": str},
577+
)
578+
579+
(
580+
zip_state.merge(state_hhs, on="state_code", how="left")
581+
.to_csv(join(OUTPUT_DIR, ZIP_HHS_FILENAME), index=False)
582+
)
583+
584+
534585
if __name__ == "__main__":
535586
create_fips_zip_crosswalk()
536587
create_zip_hsa_hrr_crosswalk()
@@ -545,3 +596,5 @@ def derive_zip_to_state_code():
545596
derive_zip_to_state_code()
546597
derive_fips_state_crosswalk()
547598
derive_zip_population_table()
599+
derive_fips_hhs_crosswalk()
600+
derive_zip_hhs_crosswalk()

0 commit comments

Comments
 (0)