34
34
FIPS_MSA_OUT_FILENAME = "fips_msa_table.csv"
35
35
FIPS_HRR_OUT_FILENAME = "fips_hrr_table.csv"
36
36
FIPS_ZIP_OUT_FILENAME = "fips_zip_table.csv"
37
+ FIPS_HHS_FILENAME = "fips_hhs_table.csv"
37
38
FIPS_POPULATION_OUT_FILENAME = "fips_pop.csv"
38
39
39
40
ZIP_HSA_OUT_FILENAME = "zip_hsa_table.csv"
42
43
ZIP_MSA_OUT_FILENAME = "zip_msa_table.csv"
43
44
ZIP_POPULATION_OUT_FILENAME = "zip_pop.csv"
44
45
ZIP_STATE_CODE_OUT_FILENAME = "zip_state_code_table.csv"
46
+ ZIP_HHS_FILENAME = "zip_hhs_table.csv"
45
47
STATE_OUT_FILENAME = "state_codes_table.csv"
46
48
STATE_HHS_OUT_FILENAME = "state_code_hhs_region_number_table.csv"
47
49
JHU_FIPS_OUT_FILENAME = "jhu_uid_fips_table.csv"
@@ -531,6 +533,55 @@ def derive_zip_to_state_code():
531
533
)
532
534
533
535
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
+
534
585
if __name__ == "__main__" :
535
586
create_fips_zip_crosswalk ()
536
587
create_zip_hsa_hrr_crosswalk ()
@@ -545,3 +596,5 @@ def derive_zip_to_state_code():
545
596
derive_zip_to_state_code ()
546
597
derive_fips_state_crosswalk ()
547
598
derive_zip_population_table ()
599
+ derive_fips_hhs_crosswalk ()
600
+ derive_zip_hhs_crosswalk ()
0 commit comments