Census Data Tools¶
+Initiate and configure the logger. This will save the outputs of the log to the specified file.
+from morpc.logs import config_logs
+
+config_logs('./temp_data/morpc-census-demo.log', level='info') ## Designate the logger level.
+2026-01-06 15:55:31,774 | INFO | morpc.logs.config_logs: Set up logging save to file ./temp_data/morpc-census-demo.log ++
morpc.census.api¶
+This module has been developed to fetch and save Census data from various API endpoints.
+Census API Class¶
+The class CensusAPI class does most of the heavy lifting, formulating the API call, getting the data, wrangling it into a long format, creating frictionless schema and resource files, and saving the data.
+The class takes the following parameters:
+-
+
- The "survey/table" to get the data from. +
- The year of the data. +
- The group of variables that you want to call. +
- The geographic "scope" of the data you want to get the data for. +
Optionally:
+-
+
- The geographic scale of the data you want to get the data for. +
- A subset of the variables in the chosen group. +
# TODO: Timeseries calls.
+
+# TODO: Getting select variables from various groups.
+Example: Compare divorced population for all tracts in 15-County region.¶
+1. See currently implemented endpoints for "survey/table" parameter.¶
+Use the IMPLEMENTED_ENDPOINTS constant to see currently available options.
+from morpc.census.api import IMPLEMENTED_ENDPOINTS
+
+IMPLEMENTED_ENDPOINTS
+['acs/acs1', + 'acs/acs1/profile', + 'acs/acs1/subject', + 'acs/acs5', + 'acs/acs5/profile', + 'acs/acs5/subject', + 'dec/pl', + 'dec/dhc', + 'dec/ddhca', + 'dec/ddhcb', + 'dec/sf1', + 'dec/sf2', + 'dec/sf3', + 'geoinfo']+
2. See available vintages¶
+To see all available endpoints provided by the Census Bureau and their available vintages, see ALL_AVAIL_ENPOINTS
+from morpc.census.api import ALL_AVAIL_ENDPOINTS
+
+ALL_AVAIL_ENDPOINTS['acs/acs5']
+[2010, + 2011, + 2012, + 2013, + 2014, + 2015, + 2016, + 2017, + 2018, + 2009, + 2019, + 2020, + 2021, + 2022, + 2023]+
3. See available variable groups for a survey/table.¶
+from morpc.census.api import get_table_groups
+
+{k: v['description'] for k, v in get_table_groups('acs/acs5', 2023).items()}['B05006']
+
+# TODO: Hierarchical lookup for variables of interest.
+2026-01-06 15:55:35,888 | INFO | morpc.req.get_json_safely: Getting data from https://api.census.gov/data/2023/acs/acs5/groups.json with parameters None. ++
'Place of Birth for the Foreign-Born Population in the United States'+
4. Select the geographic scope of the data.¶
+To see currently implemented scopes. See morpc.census.geos.SCOPES
+from morpc.census.geos import SCOPES
+
+SCOPES
+
+# TODO: Passing list of geoids to ucgid parameter in api call
+
+scope=SCOPES['region15']
+(Optional) 5. Select a smaller geographic scale to get data for.¶
+For example if you want to get all the tracts in the 15-county MORPC region.
+To see available combinations of scope and scale see morpc.census.geos.PSUEDOS.
+The key is the parent sumlevel and the values represent the child sumlevel to get the data for.
+from morpc.census.geos import PSEUDOS
+
+PSEUDOS
+
+## All available scale levels if the sumlevel of the "scope" paramter is Counties (050)
+
+PSEUDOS['050']
+['0600000', + '06V0000', + '1000000', + '1400000', + '1500000', + '1600000', + '7000000', + '8600000', + '8710000']+
(Optional) 6. A list of variables to get from the group.¶
+To see all available variables for a given variable group use morpc.census.api.get_group_variables()
+from morpc.census.api import get_group_variables
+
+{k: v['label'] for k, v in get_group_variables('acs/acs5', 2023, 'B05006').items()}
+2026-01-06 15:55:40,324 | INFO | morpc.req.get_json_safely: Getting data from https://api.census.gov/data/2023/acs/acs5/groups/B05006.json with parameters None. ++
{'B05006_001E': 'Estimate!!Total:',
+ 'B05006_001EA': 'Annotation of Estimate!!Total:',
+ 'B05006_001M': 'Margin of Error!!Total:',
+ 'B05006_001MA': 'Annotation of Margin of Error!!Total:',
+ 'B05006_002E': 'Estimate!!Total:!!Europe:',
+ 'B05006_002EA': 'Annotation of Estimate!!Total:!!Europe:',
+ 'B05006_002M': 'Margin of Error!!Total:!!Europe:',
+ 'B05006_002MA': 'Annotation of Margin of Error!!Total:!!Europe:',
+ 'B05006_003E': 'Estimate!!Total:!!Europe:!!Northern Europe:',
+ 'B05006_003EA': 'Annotation of Estimate!!Total:!!Europe:!!Northern Europe:',
+ 'B05006_003M': 'Margin of Error!!Total:!!Europe:!!Northern Europe:',
+ 'B05006_003MA': 'Annotation of Margin of Error!!Total:!!Europe:!!Northern Europe:',
+ 'B05006_004E': 'Estimate!!Total:!!Europe:!!Northern Europe:!!Denmark',
+ 'B05006_004EA': 'Annotation of Estimate!!Total:!!Europe:!!Northern Europe:!!Denmark',
+ 'B05006_004M': 'Margin of Error!!Total:!!Europe:!!Northern Europe:!!Denmark',
+ 'B05006_004MA': 'Annotation of Margin of Error!!Total:!!Europe:!!Northern Europe:!!Denmark',
+ 'B05006_005E': 'Estimate!!Total:!!Europe:!!Northern Europe:!!Ireland',
+ 'B05006_005EA': 'Annotation of Estimate!!Total:!!Europe:!!Northern Europe:!!Ireland',
+ 'B05006_005M': 'Margin of Error!!Total:!!Europe:!!Northern Europe:!!Ireland',
+ 'B05006_005MA': 'Annotation of Margin of Error!!Total:!!Europe:!!Northern Europe:!!Ireland',
+ 'B05006_006E': 'Estimate!!Total:!!Europe:!!Northern Europe:!!Norway',
+ 'B05006_006EA': 'Annotation of Estimate!!Total:!!Europe:!!Northern Europe:!!Norway',
+ 'B05006_006M': 'Margin of Error!!Total:!!Europe:!!Northern Europe:!!Norway',
+ 'B05006_006MA': 'Annotation of Margin of Error!!Total:!!Europe:!!Northern Europe:!!Norway',
+ 'B05006_007E': 'Estimate!!Total:!!Europe:!!Northern Europe:!!Sweden',
+ 'B05006_007EA': 'Annotation of Estimate!!Total:!!Europe:!!Northern Europe:!!Sweden',
+ 'B05006_007M': 'Margin of Error!!Total:!!Europe:!!Northern Europe:!!Sweden',
+ 'B05006_007MA': 'Annotation of Margin of Error!!Total:!!Europe:!!Northern Europe:!!Sweden',
+ 'B05006_008E': 'Estimate!!Total:!!Europe:!!Northern Europe:!!United Kingdom (inc. Crown Dependencies):',
+ 'B05006_008EA': 'Annotation of Estimate!!Total:!!Europe:!!Northern Europe:!!United Kingdom (inc. Crown Dependencies):',
+ 'B05006_008M': 'Margin of Error!!Total:!!Europe:!!Northern Europe:!!United Kingdom (inc. Crown Dependencies):',
+ 'B05006_008MA': 'Annotation of Margin of Error!!Total:!!Europe:!!Northern Europe:!!United Kingdom (inc. Crown Dependencies):',
+ 'B05006_009E': 'Estimate!!Total:!!Europe:!!Northern Europe:!!United Kingdom (inc. Crown Dependencies):!!United Kingdom, excluding England and Scotland',
+ 'B05006_009EA': 'Annotation of Estimate!!Total:!!Europe:!!Northern Europe:!!United Kingdom (inc. Crown Dependencies):!!United Kingdom, excluding England and Scotland',
+ 'B05006_009M': 'Margin of Error!!Total:!!Europe:!!Northern Europe:!!United Kingdom (inc. Crown Dependencies):!!United Kingdom, excluding England and Scotland',
+ 'B05006_009MA': 'Annotation of Margin of Error!!Total:!!Europe:!!Northern Europe:!!United Kingdom (inc. Crown Dependencies):!!United Kingdom, excluding England and Scotland',
+ 'B05006_010E': 'Estimate!!Total:!!Europe:!!Northern Europe:!!United Kingdom (inc. Crown Dependencies):!!England',
+ 'B05006_010EA': 'Annotation of Estimate!!Total:!!Europe:!!Northern Europe:!!United Kingdom (inc. Crown Dependencies):!!England',
+ 'B05006_010M': 'Margin of Error!!Total:!!Europe:!!Northern Europe:!!United Kingdom (inc. Crown Dependencies):!!England',
+ 'B05006_010MA': 'Annotation of Margin of Error!!Total:!!Europe:!!Northern Europe:!!United Kingdom (inc. Crown Dependencies):!!England',
+ 'B05006_011E': 'Estimate!!Total:!!Europe:!!Northern Europe:!!United Kingdom (inc. Crown Dependencies):!!Scotland',
+ 'B05006_011EA': 'Annotation of Estimate!!Total:!!Europe:!!Northern Europe:!!United Kingdom (inc. Crown Dependencies):!!Scotland',
+ 'B05006_011M': 'Margin of Error!!Total:!!Europe:!!Northern Europe:!!United Kingdom (inc. Crown Dependencies):!!Scotland',
+ 'B05006_011MA': 'Annotation of Margin of Error!!Total:!!Europe:!!Northern Europe:!!United Kingdom (inc. Crown Dependencies):!!Scotland',
+ 'B05006_012E': 'Estimate!!Total:!!Europe:!!Northern Europe:!!Other Northern Europe',
+ 'B05006_012EA': 'Annotation of Estimate!!Total:!!Europe:!!Northern Europe:!!Other Northern Europe',
+ 'B05006_012M': 'Margin of Error!!Total:!!Europe:!!Northern Europe:!!Other Northern Europe',
+ 'B05006_012MA': 'Annotation of Margin of Error!!Total:!!Europe:!!Northern Europe:!!Other Northern Europe',
+ 'B05006_013E': 'Estimate!!Total:!!Europe:!!Western Europe:',
+ 'B05006_013EA': 'Annotation of Estimate!!Total:!!Europe:!!Western Europe:',
+ 'B05006_013M': 'Margin of Error!!Total:!!Europe:!!Western Europe:',
+ 'B05006_013MA': 'Annotation of Margin of Error!!Total:!!Europe:!!Western Europe:',
+ 'B05006_014E': 'Estimate!!Total:!!Europe:!!Western Europe:!!Austria',
+ 'B05006_014EA': 'Annotation of Estimate!!Total:!!Europe:!!Western Europe:!!Austria',
+ 'B05006_014M': 'Margin of Error!!Total:!!Europe:!!Western Europe:!!Austria',
+ 'B05006_014MA': 'Annotation of Margin of Error!!Total:!!Europe:!!Western Europe:!!Austria',
+ 'B05006_015E': 'Estimate!!Total:!!Europe:!!Western Europe:!!Belgium',
+ 'B05006_015EA': 'Annotation of Estimate!!Total:!!Europe:!!Western Europe:!!Belgium',
+ 'B05006_015M': 'Margin of Error!!Total:!!Europe:!!Western Europe:!!Belgium',
+ 'B05006_015MA': 'Annotation of Margin of Error!!Total:!!Europe:!!Western Europe:!!Belgium',
+ 'B05006_016E': 'Estimate!!Total:!!Europe:!!Western Europe:!!France',
+ 'B05006_016EA': 'Annotation of Estimate!!Total:!!Europe:!!Western Europe:!!France',
+ 'B05006_016M': 'Margin of Error!!Total:!!Europe:!!Western Europe:!!France',
+ 'B05006_016MA': 'Annotation of Margin of Error!!Total:!!Europe:!!Western Europe:!!France',
+ 'B05006_017E': 'Estimate!!Total:!!Europe:!!Western Europe:!!Germany',
+ 'B05006_017EA': 'Annotation of Estimate!!Total:!!Europe:!!Western Europe:!!Germany',
+ 'B05006_017M': 'Margin of Error!!Total:!!Europe:!!Western Europe:!!Germany',
+ 'B05006_017MA': 'Annotation of Margin of Error!!Total:!!Europe:!!Western Europe:!!Germany',
+ 'B05006_018E': 'Estimate!!Total:!!Europe:!!Western Europe:!!Netherlands',
+ 'B05006_018EA': 'Annotation of Estimate!!Total:!!Europe:!!Western Europe:!!Netherlands',
+ 'B05006_018M': 'Margin of Error!!Total:!!Europe:!!Western Europe:!!Netherlands',
+ 'B05006_018MA': 'Annotation of Margin of Error!!Total:!!Europe:!!Western Europe:!!Netherlands',
+ 'B05006_019E': 'Estimate!!Total:!!Europe:!!Western Europe:!!Switzerland',
+ 'B05006_019EA': 'Annotation of Estimate!!Total:!!Europe:!!Western Europe:!!Switzerland',
+ 'B05006_019M': 'Margin of Error!!Total:!!Europe:!!Western Europe:!!Switzerland',
+ 'B05006_019MA': 'Annotation of Margin of Error!!Total:!!Europe:!!Western Europe:!!Switzerland',
+ 'B05006_020E': 'Estimate!!Total:!!Europe:!!Western Europe:!!Other Western Europe',
+ 'B05006_020EA': 'Annotation of Estimate!!Total:!!Europe:!!Western Europe:!!Other Western Europe',
+ 'B05006_020M': 'Margin of Error!!Total:!!Europe:!!Western Europe:!!Other Western Europe',
+ 'B05006_020MA': 'Annotation of Margin of Error!!Total:!!Europe:!!Western Europe:!!Other Western Europe',
+ 'B05006_021E': 'Estimate!!Total:!!Europe:!!Southern Europe:',
+ 'B05006_021EA': 'Annotation of Estimate!!Total:!!Europe:!!Southern Europe:',
+ 'B05006_021M': 'Margin of Error!!Total:!!Europe:!!Southern Europe:',
+ 'B05006_021MA': 'Annotation of Margin of Error!!Total:!!Europe:!!Southern Europe:',
+ 'B05006_022E': 'Estimate!!Total:!!Europe:!!Southern Europe:!!Greece',
+ 'B05006_022EA': 'Annotation of Estimate!!Total:!!Europe:!!Southern Europe:!!Greece',
+ 'B05006_022M': 'Margin of Error!!Total:!!Europe:!!Southern Europe:!!Greece',
+ 'B05006_022MA': 'Annotation of Margin of Error!!Total:!!Europe:!!Southern Europe:!!Greece',
+ 'B05006_023E': 'Estimate!!Total:!!Europe:!!Southern Europe:!!Italy',
+ 'B05006_023EA': 'Annotation of Estimate!!Total:!!Europe:!!Southern Europe:!!Italy',
+ 'B05006_023M': 'Margin of Error!!Total:!!Europe:!!Southern Europe:!!Italy',
+ 'B05006_023MA': 'Annotation of Margin of Error!!Total:!!Europe:!!Southern Europe:!!Italy',
+ 'B05006_024E': 'Estimate!!Total:!!Europe:!!Southern Europe:!!Portugal',
+ 'B05006_024EA': 'Annotation of Estimate!!Total:!!Europe:!!Southern Europe:!!Portugal',
+ 'B05006_024M': 'Margin of Error!!Total:!!Europe:!!Southern Europe:!!Portugal',
+ 'B05006_024MA': 'Annotation of Margin of Error!!Total:!!Europe:!!Southern Europe:!!Portugal',
+ 'B05006_025E': 'Estimate!!Total:!!Europe:!!Southern Europe:!!Portugal!!Azores Islands',
+ 'B05006_025EA': 'Annotation of Estimate!!Total:!!Europe:!!Southern Europe:!!Portugal!!Azores Islands',
+ 'B05006_025M': 'Margin of Error!!Total:!!Europe:!!Southern Europe:!!Portugal!!Azores Islands',
+ 'B05006_025MA': 'Annotation of Margin of Error!!Total:!!Europe:!!Southern Europe:!!Portugal!!Azores Islands',
+ 'B05006_026E': 'Estimate!!Total:!!Europe:!!Southern Europe:!!Spain',
+ 'B05006_026EA': 'Annotation of Estimate!!Total:!!Europe:!!Southern Europe:!!Spain',
+ 'B05006_026M': 'Margin of Error!!Total:!!Europe:!!Southern Europe:!!Spain',
+ 'B05006_026MA': 'Annotation of Margin of Error!!Total:!!Europe:!!Southern Europe:!!Spain',
+ 'B05006_027E': 'Estimate!!Total:!!Europe:!!Southern Europe:!!Other Southern Europe',
+ 'B05006_027EA': 'Annotation of Estimate!!Total:!!Europe:!!Southern Europe:!!Other Southern Europe',
+ 'B05006_027M': 'Margin of Error!!Total:!!Europe:!!Southern Europe:!!Other Southern Europe',
+ 'B05006_027MA': 'Annotation of Margin of Error!!Total:!!Europe:!!Southern Europe:!!Other Southern Europe',
+ 'B05006_028E': 'Estimate!!Total:!!Europe:!!Eastern Europe:',
+ 'B05006_028EA': 'Annotation of Estimate!!Total:!!Europe:!!Eastern Europe:',
+ 'B05006_028M': 'Margin of Error!!Total:!!Europe:!!Eastern Europe:',
+ 'B05006_028MA': 'Annotation of Margin of Error!!Total:!!Europe:!!Eastern Europe:',
+ 'B05006_029E': 'Estimate!!Total:!!Europe:!!Eastern Europe:!!Albania',
+ 'B05006_029EA': 'Annotation of Estimate!!Total:!!Europe:!!Eastern Europe:!!Albania',
+ 'B05006_029M': 'Margin of Error!!Total:!!Europe:!!Eastern Europe:!!Albania',
+ 'B05006_029MA': 'Annotation of Margin of Error!!Total:!!Europe:!!Eastern Europe:!!Albania',
+ 'B05006_030E': 'Estimate!!Total:!!Europe:!!Eastern Europe:!!Belarus',
+ 'B05006_030EA': 'Annotation of Estimate!!Total:!!Europe:!!Eastern Europe:!!Belarus',
+ 'B05006_030M': 'Margin of Error!!Total:!!Europe:!!Eastern Europe:!!Belarus',
+ 'B05006_030MA': 'Annotation of Margin of Error!!Total:!!Europe:!!Eastern Europe:!!Belarus',
+ 'B05006_031E': 'Estimate!!Total:!!Europe:!!Eastern Europe:!!Bosnia and Herzegovina',
+ 'B05006_031EA': 'Annotation of Estimate!!Total:!!Europe:!!Eastern Europe:!!Bosnia and Herzegovina',
+ 'B05006_031M': 'Margin of Error!!Total:!!Europe:!!Eastern Europe:!!Bosnia and Herzegovina',
+ 'B05006_031MA': 'Annotation of Margin of Error!!Total:!!Europe:!!Eastern Europe:!!Bosnia and Herzegovina',
+ 'B05006_032E': 'Estimate!!Total:!!Europe:!!Eastern Europe:!!Bulgaria',
+ 'B05006_032EA': 'Annotation of Estimate!!Total:!!Europe:!!Eastern Europe:!!Bulgaria',
+ 'B05006_032M': 'Margin of Error!!Total:!!Europe:!!Eastern Europe:!!Bulgaria',
+ 'B05006_032MA': 'Annotation of Margin of Error!!Total:!!Europe:!!Eastern Europe:!!Bulgaria',
+ 'B05006_033E': 'Estimate!!Total:!!Europe:!!Eastern Europe:!!Croatia',
+ 'B05006_033EA': 'Annotation of Estimate!!Total:!!Europe:!!Eastern Europe:!!Croatia',
+ 'B05006_033M': 'Margin of Error!!Total:!!Europe:!!Eastern Europe:!!Croatia',
+ 'B05006_033MA': 'Annotation of Margin of Error!!Total:!!Europe:!!Eastern Europe:!!Croatia',
+ 'B05006_034E': 'Estimate!!Total:!!Europe:!!Eastern Europe:!!Czechoslovakia (includes Czech Republic and Slovakia)',
+ 'B05006_034EA': 'Annotation of Estimate!!Total:!!Europe:!!Eastern Europe:!!Czechoslovakia (includes Czech Republic and Slovakia)',
+ 'B05006_034M': 'Margin of Error!!Total:!!Europe:!!Eastern Europe:!!Czechoslovakia (includes Czech Republic and Slovakia)',
+ 'B05006_034MA': 'Annotation of Margin of Error!!Total:!!Europe:!!Eastern Europe:!!Czechoslovakia (includes Czech Republic and Slovakia)',
+ 'B05006_035E': 'Estimate!!Total:!!Europe:!!Eastern Europe:!!Hungary',
+ 'B05006_035EA': 'Annotation of Estimate!!Total:!!Europe:!!Eastern Europe:!!Hungary',
+ 'B05006_035M': 'Margin of Error!!Total:!!Europe:!!Eastern Europe:!!Hungary',
+ 'B05006_035MA': 'Annotation of Margin of Error!!Total:!!Europe:!!Eastern Europe:!!Hungary',
+ 'B05006_036E': 'Estimate!!Total:!!Europe:!!Eastern Europe:!!Latvia',
+ 'B05006_036EA': 'Annotation of Estimate!!Total:!!Europe:!!Eastern Europe:!!Latvia',
+ 'B05006_036M': 'Margin of Error!!Total:!!Europe:!!Eastern Europe:!!Latvia',
+ 'B05006_036MA': 'Annotation of Margin of Error!!Total:!!Europe:!!Eastern Europe:!!Latvia',
+ 'B05006_037E': 'Estimate!!Total:!!Europe:!!Eastern Europe:!!Lithuania',
+ 'B05006_037EA': 'Annotation of Estimate!!Total:!!Europe:!!Eastern Europe:!!Lithuania',
+ 'B05006_037M': 'Margin of Error!!Total:!!Europe:!!Eastern Europe:!!Lithuania',
+ 'B05006_037MA': 'Annotation of Margin of Error!!Total:!!Europe:!!Eastern Europe:!!Lithuania',
+ 'B05006_038E': 'Estimate!!Total:!!Europe:!!Eastern Europe:!!Moldova',
+ 'B05006_038EA': 'Annotation of Estimate!!Total:!!Europe:!!Eastern Europe:!!Moldova',
+ 'B05006_038M': 'Margin of Error!!Total:!!Europe:!!Eastern Europe:!!Moldova',
+ 'B05006_038MA': 'Annotation of Margin of Error!!Total:!!Europe:!!Eastern Europe:!!Moldova',
+ 'B05006_039E': 'Estimate!!Total:!!Europe:!!Eastern Europe:!!North Macedonia (Macedonia)',
+ 'B05006_039EA': 'Annotation of Estimate!!Total:!!Europe:!!Eastern Europe:!!North Macedonia (Macedonia)',
+ 'B05006_039M': 'Margin of Error!!Total:!!Europe:!!Eastern Europe:!!North Macedonia (Macedonia)',
+ 'B05006_039MA': 'Annotation of Margin of Error!!Total:!!Europe:!!Eastern Europe:!!North Macedonia (Macedonia)',
+ 'B05006_040E': 'Estimate!!Total:!!Europe:!!Eastern Europe:!!Poland',
+ 'B05006_040EA': 'Annotation of Estimate!!Total:!!Europe:!!Eastern Europe:!!Poland',
+ 'B05006_040M': 'Margin of Error!!Total:!!Europe:!!Eastern Europe:!!Poland',
+ 'B05006_040MA': 'Annotation of Margin of Error!!Total:!!Europe:!!Eastern Europe:!!Poland',
+ 'B05006_041E': 'Estimate!!Total:!!Europe:!!Eastern Europe:!!Romania',
+ 'B05006_041EA': 'Annotation of Estimate!!Total:!!Europe:!!Eastern Europe:!!Romania',
+ 'B05006_041M': 'Margin of Error!!Total:!!Europe:!!Eastern Europe:!!Romania',
+ 'B05006_041MA': 'Annotation of Margin of Error!!Total:!!Europe:!!Eastern Europe:!!Romania',
+ 'B05006_042E': 'Estimate!!Total:!!Europe:!!Eastern Europe:!!Russia',
+ 'B05006_042EA': 'Annotation of Estimate!!Total:!!Europe:!!Eastern Europe:!!Russia',
+ 'B05006_042M': 'Margin of Error!!Total:!!Europe:!!Eastern Europe:!!Russia',
+ 'B05006_042MA': 'Annotation of Margin of Error!!Total:!!Europe:!!Eastern Europe:!!Russia',
+ 'B05006_043E': 'Estimate!!Total:!!Europe:!!Eastern Europe:!!Serbia',
+ 'B05006_043EA': 'Annotation of Estimate!!Total:!!Europe:!!Eastern Europe:!!Serbia',
+ 'B05006_043M': 'Margin of Error!!Total:!!Europe:!!Eastern Europe:!!Serbia',
+ 'B05006_043MA': 'Annotation of Margin of Error!!Total:!!Europe:!!Eastern Europe:!!Serbia',
+ 'B05006_044E': 'Estimate!!Total:!!Europe:!!Eastern Europe:!!Ukraine',
+ 'B05006_044EA': 'Annotation of Estimate!!Total:!!Europe:!!Eastern Europe:!!Ukraine',
+ 'B05006_044M': 'Margin of Error!!Total:!!Europe:!!Eastern Europe:!!Ukraine',
+ 'B05006_044MA': 'Annotation of Margin of Error!!Total:!!Europe:!!Eastern Europe:!!Ukraine',
+ 'B05006_045E': 'Estimate!!Total:!!Europe:!!Eastern Europe:!!Other Eastern Europe',
+ 'B05006_045EA': 'Annotation of Estimate!!Total:!!Europe:!!Eastern Europe:!!Other Eastern Europe',
+ 'B05006_045M': 'Margin of Error!!Total:!!Europe:!!Eastern Europe:!!Other Eastern Europe',
+ 'B05006_045MA': 'Annotation of Margin of Error!!Total:!!Europe:!!Eastern Europe:!!Other Eastern Europe',
+ 'B05006_046E': 'Estimate!!Total:!!Europe:!!Europe, n.e.c.',
+ 'B05006_046EA': 'Annotation of Estimate!!Total:!!Europe:!!Europe, n.e.c.',
+ 'B05006_046M': 'Margin of Error!!Total:!!Europe:!!Europe, n.e.c.',
+ 'B05006_046MA': 'Annotation of Margin of Error!!Total:!!Europe:!!Europe, n.e.c.',
+ 'B05006_047E': 'Estimate!!Total:!!Asia:',
+ 'B05006_047EA': 'Annotation of Estimate!!Total:!!Asia:',
+ 'B05006_047M': 'Margin of Error!!Total:!!Asia:',
+ 'B05006_047MA': 'Annotation of Margin of Error!!Total:!!Asia:',
+ 'B05006_048E': 'Estimate!!Total:!!Asia:!!Eastern Asia:',
+ 'B05006_048EA': 'Annotation of Estimate!!Total:!!Asia:!!Eastern Asia:',
+ 'B05006_048M': 'Margin of Error!!Total:!!Asia:!!Eastern Asia:',
+ 'B05006_048MA': 'Annotation of Margin of Error!!Total:!!Asia:!!Eastern Asia:',
+ 'B05006_049E': 'Estimate!!Total:!!Asia:!!Eastern Asia:!!China:',
+ 'B05006_049EA': 'Annotation of Estimate!!Total:!!Asia:!!Eastern Asia:!!China:',
+ 'B05006_049M': 'Margin of Error!!Total:!!Asia:!!Eastern Asia:!!China:',
+ 'B05006_049MA': 'Annotation of Margin of Error!!Total:!!Asia:!!Eastern Asia:!!China:',
+ 'B05006_050E': 'Estimate!!Total:!!Asia:!!Eastern Asia:!!China:!!China, excluding Hong Kong and Taiwan',
+ 'B05006_050EA': 'Annotation of Estimate!!Total:!!Asia:!!Eastern Asia:!!China:!!China, excluding Hong Kong and Taiwan',
+ 'B05006_050M': 'Margin of Error!!Total:!!Asia:!!Eastern Asia:!!China:!!China, excluding Hong Kong and Taiwan',
+ 'B05006_050MA': 'Annotation of Margin of Error!!Total:!!Asia:!!Eastern Asia:!!China:!!China, excluding Hong Kong and Taiwan',
+ 'B05006_051E': 'Estimate!!Total:!!Asia:!!Eastern Asia:!!China:!!Hong Kong',
+ 'B05006_051EA': 'Annotation of Estimate!!Total:!!Asia:!!Eastern Asia:!!China:!!Hong Kong',
+ 'B05006_051M': 'Margin of Error!!Total:!!Asia:!!Eastern Asia:!!China:!!Hong Kong',
+ 'B05006_051MA': 'Annotation of Margin of Error!!Total:!!Asia:!!Eastern Asia:!!China:!!Hong Kong',
+ 'B05006_052E': 'Estimate!!Total:!!Asia:!!Eastern Asia:!!China:!!Taiwan',
+ 'B05006_052EA': 'Annotation of Estimate!!Total:!!Asia:!!Eastern Asia:!!China:!!Taiwan',
+ 'B05006_052M': 'Margin of Error!!Total:!!Asia:!!Eastern Asia:!!China:!!Taiwan',
+ 'B05006_052MA': 'Annotation of Margin of Error!!Total:!!Asia:!!Eastern Asia:!!China:!!Taiwan',
+ 'B05006_053E': 'Estimate!!Total:!!Asia:!!Eastern Asia:!!Japan',
+ 'B05006_053EA': 'Annotation of Estimate!!Total:!!Asia:!!Eastern Asia:!!Japan',
+ 'B05006_053M': 'Margin of Error!!Total:!!Asia:!!Eastern Asia:!!Japan',
+ 'B05006_053MA': 'Annotation of Margin of Error!!Total:!!Asia:!!Eastern Asia:!!Japan',
+ 'B05006_054E': 'Estimate!!Total:!!Asia:!!Eastern Asia:!!Korea',
+ 'B05006_054EA': 'Annotation of Estimate!!Total:!!Asia:!!Eastern Asia:!!Korea',
+ 'B05006_054M': 'Margin of Error!!Total:!!Asia:!!Eastern Asia:!!Korea',
+ 'B05006_054MA': 'Annotation of Margin of Error!!Total:!!Asia:!!Eastern Asia:!!Korea',
+ 'B05006_055E': 'Estimate!!Total:!!Asia:!!Eastern Asia:!!Other Eastern Asia',
+ 'B05006_055EA': 'Annotation of Estimate!!Total:!!Asia:!!Eastern Asia:!!Other Eastern Asia',
+ 'B05006_055M': 'Margin of Error!!Total:!!Asia:!!Eastern Asia:!!Other Eastern Asia',
+ 'B05006_055MA': 'Annotation of Margin of Error!!Total:!!Asia:!!Eastern Asia:!!Other Eastern Asia',
+ 'B05006_056E': 'Estimate!!Total:!!Asia:!!South Central Asia:',
+ 'B05006_056EA': 'Annotation of Estimate!!Total:!!Asia:!!South Central Asia:',
+ 'B05006_056M': 'Margin of Error!!Total:!!Asia:!!South Central Asia:',
+ 'B05006_056MA': 'Annotation of Margin of Error!!Total:!!Asia:!!South Central Asia:',
+ 'B05006_057E': 'Estimate!!Total:!!Asia:!!South Central Asia:!!Afghanistan',
+ 'B05006_057EA': 'Annotation of Estimate!!Total:!!Asia:!!South Central Asia:!!Afghanistan',
+ 'B05006_057M': 'Margin of Error!!Total:!!Asia:!!South Central Asia:!!Afghanistan',
+ 'B05006_057MA': 'Annotation of Margin of Error!!Total:!!Asia:!!South Central Asia:!!Afghanistan',
+ 'B05006_058E': 'Estimate!!Total:!!Asia:!!South Central Asia:!!Bangladesh',
+ 'B05006_058EA': 'Annotation of Estimate!!Total:!!Asia:!!South Central Asia:!!Bangladesh',
+ 'B05006_058M': 'Margin of Error!!Total:!!Asia:!!South Central Asia:!!Bangladesh',
+ 'B05006_058MA': 'Annotation of Margin of Error!!Total:!!Asia:!!South Central Asia:!!Bangladesh',
+ 'B05006_059E': 'Estimate!!Total:!!Asia:!!South Central Asia:!!Bhutan',
+ 'B05006_059EA': 'Annotation of Estimate!!Total:!!Asia:!!South Central Asia:!!Bhutan',
+ 'B05006_059M': 'Margin of Error!!Total:!!Asia:!!South Central Asia:!!Bhutan',
+ 'B05006_059MA': 'Annotation of Margin of Error!!Total:!!Asia:!!South Central Asia:!!Bhutan',
+ 'B05006_060E': 'Estimate!!Total:!!Asia:!!South Central Asia:!!India',
+ 'B05006_060EA': 'Annotation of Estimate!!Total:!!Asia:!!South Central Asia:!!India',
+ 'B05006_060M': 'Margin of Error!!Total:!!Asia:!!South Central Asia:!!India',
+ 'B05006_060MA': 'Annotation of Margin of Error!!Total:!!Asia:!!South Central Asia:!!India',
+ 'B05006_061E': 'Estimate!!Total:!!Asia:!!South Central Asia:!!Iran',
+ 'B05006_061EA': 'Annotation of Estimate!!Total:!!Asia:!!South Central Asia:!!Iran',
+ 'B05006_061M': 'Margin of Error!!Total:!!Asia:!!South Central Asia:!!Iran',
+ 'B05006_061MA': 'Annotation of Margin of Error!!Total:!!Asia:!!South Central Asia:!!Iran',
+ 'B05006_062E': 'Estimate!!Total:!!Asia:!!South Central Asia:!!Kazakhstan',
+ 'B05006_062EA': 'Annotation of Estimate!!Total:!!Asia:!!South Central Asia:!!Kazakhstan',
+ 'B05006_062M': 'Margin of Error!!Total:!!Asia:!!South Central Asia:!!Kazakhstan',
+ 'B05006_062MA': 'Annotation of Margin of Error!!Total:!!Asia:!!South Central Asia:!!Kazakhstan',
+ 'B05006_063E': 'Estimate!!Total:!!Asia:!!South Central Asia:!!Nepal',
+ 'B05006_063EA': 'Annotation of Estimate!!Total:!!Asia:!!South Central Asia:!!Nepal',
+ 'B05006_063M': 'Margin of Error!!Total:!!Asia:!!South Central Asia:!!Nepal',
+ 'B05006_063MA': 'Annotation of Margin of Error!!Total:!!Asia:!!South Central Asia:!!Nepal',
+ 'B05006_064E': 'Estimate!!Total:!!Asia:!!South Central Asia:!!Pakistan',
+ 'B05006_064EA': 'Annotation of Estimate!!Total:!!Asia:!!South Central Asia:!!Pakistan',
+ 'B05006_064M': 'Margin of Error!!Total:!!Asia:!!South Central Asia:!!Pakistan',
+ 'B05006_064MA': 'Annotation of Margin of Error!!Total:!!Asia:!!South Central Asia:!!Pakistan',
+ 'B05006_065E': 'Estimate!!Total:!!Asia:!!South Central Asia:!!Sri Lanka',
+ 'B05006_065EA': 'Annotation of Estimate!!Total:!!Asia:!!South Central Asia:!!Sri Lanka',
+ 'B05006_065M': 'Margin of Error!!Total:!!Asia:!!South Central Asia:!!Sri Lanka',
+ 'B05006_065MA': 'Annotation of Margin of Error!!Total:!!Asia:!!South Central Asia:!!Sri Lanka',
+ 'B05006_066E': 'Estimate!!Total:!!Asia:!!South Central Asia:!!Uzbekistan',
+ 'B05006_066EA': 'Annotation of Estimate!!Total:!!Asia:!!South Central Asia:!!Uzbekistan',
+ 'B05006_066M': 'Margin of Error!!Total:!!Asia:!!South Central Asia:!!Uzbekistan',
+ 'B05006_066MA': 'Annotation of Margin of Error!!Total:!!Asia:!!South Central Asia:!!Uzbekistan',
+ 'B05006_067E': 'Estimate!!Total:!!Asia:!!South Central Asia:!!Other South Central Asia',
+ 'B05006_067EA': 'Annotation of Estimate!!Total:!!Asia:!!South Central Asia:!!Other South Central Asia',
+ 'B05006_067M': 'Margin of Error!!Total:!!Asia:!!South Central Asia:!!Other South Central Asia',
+ 'B05006_067MA': 'Annotation of Margin of Error!!Total:!!Asia:!!South Central Asia:!!Other South Central Asia',
+ 'B05006_068E': 'Estimate!!Total:!!Asia:!!South Eastern Asia:',
+ 'B05006_068EA': 'Annotation of Estimate!!Total:!!Asia:!!South Eastern Asia:',
+ 'B05006_068M': 'Margin of Error!!Total:!!Asia:!!South Eastern Asia:',
+ 'B05006_068MA': 'Annotation of Margin of Error!!Total:!!Asia:!!South Eastern Asia:',
+ 'B05006_069E': 'Estimate!!Total:!!Asia:!!South Eastern Asia:!!Burma (Myanmar)',
+ 'B05006_069EA': 'Annotation of Estimate!!Total:!!Asia:!!South Eastern Asia:!!Burma (Myanmar)',
+ 'B05006_069M': 'Margin of Error!!Total:!!Asia:!!South Eastern Asia:!!Burma (Myanmar)',
+ 'B05006_069MA': 'Annotation of Margin of Error!!Total:!!Asia:!!South Eastern Asia:!!Burma (Myanmar)',
+ 'B05006_070E': 'Estimate!!Total:!!Asia:!!South Eastern Asia:!!Cambodia',
+ 'B05006_070EA': 'Annotation of Estimate!!Total:!!Asia:!!South Eastern Asia:!!Cambodia',
+ 'B05006_070M': 'Margin of Error!!Total:!!Asia:!!South Eastern Asia:!!Cambodia',
+ 'B05006_070MA': 'Annotation of Margin of Error!!Total:!!Asia:!!South Eastern Asia:!!Cambodia',
+ 'B05006_071E': 'Estimate!!Total:!!Asia:!!South Eastern Asia:!!Indonesia',
+ 'B05006_071EA': 'Annotation of Estimate!!Total:!!Asia:!!South Eastern Asia:!!Indonesia',
+ 'B05006_071M': 'Margin of Error!!Total:!!Asia:!!South Eastern Asia:!!Indonesia',
+ 'B05006_071MA': 'Annotation of Margin of Error!!Total:!!Asia:!!South Eastern Asia:!!Indonesia',
+ 'B05006_072E': 'Estimate!!Total:!!Asia:!!South Eastern Asia:!!Laos',
+ 'B05006_072EA': 'Annotation of Estimate!!Total:!!Asia:!!South Eastern Asia:!!Laos',
+ 'B05006_072M': 'Margin of Error!!Total:!!Asia:!!South Eastern Asia:!!Laos',
+ 'B05006_072MA': 'Annotation of Margin of Error!!Total:!!Asia:!!South Eastern Asia:!!Laos',
+ 'B05006_073E': 'Estimate!!Total:!!Asia:!!South Eastern Asia:!!Malaysia',
+ 'B05006_073EA': 'Annotation of Estimate!!Total:!!Asia:!!South Eastern Asia:!!Malaysia',
+ 'B05006_073M': 'Margin of Error!!Total:!!Asia:!!South Eastern Asia:!!Malaysia',
+ 'B05006_073MA': 'Annotation of Margin of Error!!Total:!!Asia:!!South Eastern Asia:!!Malaysia',
+ 'B05006_074E': 'Estimate!!Total:!!Asia:!!South Eastern Asia:!!Philippines',
+ 'B05006_074EA': 'Annotation of Estimate!!Total:!!Asia:!!South Eastern Asia:!!Philippines',
+ 'B05006_074M': 'Margin of Error!!Total:!!Asia:!!South Eastern Asia:!!Philippines',
+ 'B05006_074MA': 'Annotation of Margin of Error!!Total:!!Asia:!!South Eastern Asia:!!Philippines',
+ 'B05006_075E': 'Estimate!!Total:!!Asia:!!South Eastern Asia:!!Singapore',
+ 'B05006_075EA': 'Annotation of Estimate!!Total:!!Asia:!!South Eastern Asia:!!Singapore',
+ 'B05006_075M': 'Margin of Error!!Total:!!Asia:!!South Eastern Asia:!!Singapore',
+ 'B05006_075MA': 'Annotation of Margin of Error!!Total:!!Asia:!!South Eastern Asia:!!Singapore',
+ 'B05006_076E': 'Estimate!!Total:!!Asia:!!South Eastern Asia:!!Thailand',
+ 'B05006_076EA': 'Annotation of Estimate!!Total:!!Asia:!!South Eastern Asia:!!Thailand',
+ 'B05006_076M': 'Margin of Error!!Total:!!Asia:!!South Eastern Asia:!!Thailand',
+ 'B05006_076MA': 'Annotation of Margin of Error!!Total:!!Asia:!!South Eastern Asia:!!Thailand',
+ 'B05006_077E': 'Estimate!!Total:!!Asia:!!South Eastern Asia:!!Vietnam',
+ 'B05006_077EA': 'Annotation of Estimate!!Total:!!Asia:!!South Eastern Asia:!!Vietnam',
+ 'B05006_077M': 'Margin of Error!!Total:!!Asia:!!South Eastern Asia:!!Vietnam',
+ 'B05006_077MA': 'Annotation of Margin of Error!!Total:!!Asia:!!South Eastern Asia:!!Vietnam',
+ 'B05006_078E': 'Estimate!!Total:!!Asia:!!South Eastern Asia:!!Other South Eastern Asia',
+ 'B05006_078EA': 'Annotation of Estimate!!Total:!!Asia:!!South Eastern Asia:!!Other South Eastern Asia',
+ 'B05006_078M': 'Margin of Error!!Total:!!Asia:!!South Eastern Asia:!!Other South Eastern Asia',
+ 'B05006_078MA': 'Annotation of Margin of Error!!Total:!!Asia:!!South Eastern Asia:!!Other South Eastern Asia',
+ 'B05006_079E': 'Estimate!!Total:!!Asia:!!Western Asia:',
+ 'B05006_079EA': 'Annotation of Estimate!!Total:!!Asia:!!Western Asia:',
+ 'B05006_079M': 'Margin of Error!!Total:!!Asia:!!Western Asia:',
+ 'B05006_079MA': 'Annotation of Margin of Error!!Total:!!Asia:!!Western Asia:',
+ 'B05006_080E': 'Estimate!!Total:!!Asia:!!Western Asia:!!Armenia',
+ 'B05006_080EA': 'Annotation of Estimate!!Total:!!Asia:!!Western Asia:!!Armenia',
+ 'B05006_080M': 'Margin of Error!!Total:!!Asia:!!Western Asia:!!Armenia',
+ 'B05006_080MA': 'Annotation of Margin of Error!!Total:!!Asia:!!Western Asia:!!Armenia',
+ 'B05006_081E': 'Estimate!!Total:!!Asia:!!Western Asia:!!Azerbaijan',
+ 'B05006_081EA': 'Annotation of Estimate!!Total:!!Asia:!!Western Asia:!!Azerbaijan',
+ 'B05006_081M': 'Margin of Error!!Total:!!Asia:!!Western Asia:!!Azerbaijan',
+ 'B05006_081MA': 'Annotation of Margin of Error!!Total:!!Asia:!!Western Asia:!!Azerbaijan',
+ 'B05006_082E': 'Estimate!!Total:!!Asia:!!Western Asia:!!Georgia',
+ 'B05006_082EA': 'Annotation of Estimate!!Total:!!Asia:!!Western Asia:!!Georgia',
+ 'B05006_082M': 'Margin of Error!!Total:!!Asia:!!Western Asia:!!Georgia',
+ 'B05006_082MA': 'Annotation of Margin of Error!!Total:!!Asia:!!Western Asia:!!Georgia',
+ 'B05006_083E': 'Estimate!!Total:!!Asia:!!Western Asia:!!Iraq',
+ 'B05006_083EA': 'Annotation of Estimate!!Total:!!Asia:!!Western Asia:!!Iraq',
+ 'B05006_083M': 'Margin of Error!!Total:!!Asia:!!Western Asia:!!Iraq',
+ 'B05006_083MA': 'Annotation of Margin of Error!!Total:!!Asia:!!Western Asia:!!Iraq',
+ 'B05006_084E': 'Estimate!!Total:!!Asia:!!Western Asia:!!Israel',
+ 'B05006_084EA': 'Annotation of Estimate!!Total:!!Asia:!!Western Asia:!!Israel',
+ 'B05006_084M': 'Margin of Error!!Total:!!Asia:!!Western Asia:!!Israel',
+ 'B05006_084MA': 'Annotation of Margin of Error!!Total:!!Asia:!!Western Asia:!!Israel',
+ 'B05006_085E': 'Estimate!!Total:!!Asia:!!Western Asia:!!Jordan',
+ 'B05006_085EA': 'Annotation of Estimate!!Total:!!Asia:!!Western Asia:!!Jordan',
+ 'B05006_085M': 'Margin of Error!!Total:!!Asia:!!Western Asia:!!Jordan',
+ 'B05006_085MA': 'Annotation of Margin of Error!!Total:!!Asia:!!Western Asia:!!Jordan',
+ 'B05006_086E': 'Estimate!!Total:!!Asia:!!Western Asia:!!Kuwait',
+ 'B05006_086EA': 'Annotation of Estimate!!Total:!!Asia:!!Western Asia:!!Kuwait',
+ 'B05006_086M': 'Margin of Error!!Total:!!Asia:!!Western Asia:!!Kuwait',
+ 'B05006_086MA': 'Annotation of Margin of Error!!Total:!!Asia:!!Western Asia:!!Kuwait',
+ 'B05006_087E': 'Estimate!!Total:!!Asia:!!Western Asia:!!Lebanon',
+ 'B05006_087EA': 'Annotation of Estimate!!Total:!!Asia:!!Western Asia:!!Lebanon',
+ 'B05006_087M': 'Margin of Error!!Total:!!Asia:!!Western Asia:!!Lebanon',
+ 'B05006_087MA': 'Annotation of Margin of Error!!Total:!!Asia:!!Western Asia:!!Lebanon',
+ 'B05006_088E': 'Estimate!!Total:!!Asia:!!Western Asia:!!Saudi Arabia',
+ 'B05006_088EA': 'Annotation of Estimate!!Total:!!Asia:!!Western Asia:!!Saudi Arabia',
+ 'B05006_088M': 'Margin of Error!!Total:!!Asia:!!Western Asia:!!Saudi Arabia',
+ 'B05006_088MA': 'Annotation of Margin of Error!!Total:!!Asia:!!Western Asia:!!Saudi Arabia',
+ 'B05006_089E': 'Estimate!!Total:!!Asia:!!Western Asia:!!Syria',
+ 'B05006_089EA': 'Annotation of Estimate!!Total:!!Asia:!!Western Asia:!!Syria',
+ 'B05006_089M': 'Margin of Error!!Total:!!Asia:!!Western Asia:!!Syria',
+ 'B05006_089MA': 'Annotation of Margin of Error!!Total:!!Asia:!!Western Asia:!!Syria',
+ 'B05006_090E': 'Estimate!!Total:!!Asia:!!Western Asia:!!Turkey',
+ 'B05006_090EA': 'Annotation of Estimate!!Total:!!Asia:!!Western Asia:!!Turkey',
+ 'B05006_090M': 'Margin of Error!!Total:!!Asia:!!Western Asia:!!Turkey',
+ 'B05006_090MA': 'Annotation of Margin of Error!!Total:!!Asia:!!Western Asia:!!Turkey',
+ 'B05006_091E': 'Estimate!!Total:!!Asia:!!Western Asia:!!United Arab Emirates',
+ 'B05006_091EA': 'Annotation of Estimate!!Total:!!Asia:!!Western Asia:!!United Arab Emirates',
+ 'B05006_091M': 'Margin of Error!!Total:!!Asia:!!Western Asia:!!United Arab Emirates',
+ 'B05006_091MA': 'Annotation of Margin of Error!!Total:!!Asia:!!Western Asia:!!United Arab Emirates',
+ 'B05006_092E': 'Estimate!!Total:!!Asia:!!Western Asia:!!Yemen',
+ 'B05006_092EA': 'Annotation of Estimate!!Total:!!Asia:!!Western Asia:!!Yemen',
+ 'B05006_092M': 'Margin of Error!!Total:!!Asia:!!Western Asia:!!Yemen',
+ 'B05006_092MA': 'Annotation of Margin of Error!!Total:!!Asia:!!Western Asia:!!Yemen',
+ 'B05006_093E': 'Estimate!!Total:!!Asia:!!Western Asia:!!Other Western Asia',
+ 'B05006_093EA': 'Annotation of Estimate!!Total:!!Asia:!!Western Asia:!!Other Western Asia',
+ 'B05006_093M': 'Margin of Error!!Total:!!Asia:!!Western Asia:!!Other Western Asia',
+ 'B05006_093MA': 'Annotation of Margin of Error!!Total:!!Asia:!!Western Asia:!!Other Western Asia',
+ 'B05006_094E': 'Estimate!!Total:!!Asia:!!Asia, n.e.c.',
+ 'B05006_094EA': 'Annotation of Estimate!!Total:!!Asia:!!Asia, n.e.c.',
+ 'B05006_094M': 'Margin of Error!!Total:!!Asia:!!Asia, n.e.c.',
+ 'B05006_094MA': 'Annotation of Margin of Error!!Total:!!Asia:!!Asia, n.e.c.',
+ 'B05006_095E': 'Estimate!!Total:!!Africa:',
+ 'B05006_095EA': 'Annotation of Estimate!!Total:!!Africa:',
+ 'B05006_095M': 'Margin of Error!!Total:!!Africa:',
+ 'B05006_095MA': 'Annotation of Margin of Error!!Total:!!Africa:',
+ 'B05006_096E': 'Estimate!!Total:!!Africa:!!Eastern Africa:',
+ 'B05006_096EA': 'Annotation of Estimate!!Total:!!Africa:!!Eastern Africa:',
+ 'B05006_096M': 'Margin of Error!!Total:!!Africa:!!Eastern Africa:',
+ 'B05006_096MA': 'Annotation of Margin of Error!!Total:!!Africa:!!Eastern Africa:',
+ 'B05006_097E': 'Estimate!!Total:!!Africa:!!Eastern Africa:!!Eritrea',
+ 'B05006_097EA': 'Annotation of Estimate!!Total:!!Africa:!!Eastern Africa:!!Eritrea',
+ 'B05006_097M': 'Margin of Error!!Total:!!Africa:!!Eastern Africa:!!Eritrea',
+ 'B05006_097MA': 'Annotation of Margin of Error!!Total:!!Africa:!!Eastern Africa:!!Eritrea',
+ 'B05006_098E': 'Estimate!!Total:!!Africa:!!Eastern Africa:!!Ethiopia',
+ 'B05006_098EA': 'Annotation of Estimate!!Total:!!Africa:!!Eastern Africa:!!Ethiopia',
+ 'B05006_098M': 'Margin of Error!!Total:!!Africa:!!Eastern Africa:!!Ethiopia',
+ 'B05006_098MA': 'Annotation of Margin of Error!!Total:!!Africa:!!Eastern Africa:!!Ethiopia',
+ 'B05006_099E': 'Estimate!!Total:!!Africa:!!Eastern Africa:!!Kenya',
+ 'B05006_099EA': 'Annotation of Estimate!!Total:!!Africa:!!Eastern Africa:!!Kenya',
+ 'B05006_099M': 'Margin of Error!!Total:!!Africa:!!Eastern Africa:!!Kenya',
+ 'B05006_099MA': 'Annotation of Margin of Error!!Total:!!Africa:!!Eastern Africa:!!Kenya',
+ 'B05006_100E': 'Estimate!!Total:!!Africa:!!Eastern Africa:!!Somalia',
+ 'B05006_100EA': 'Annotation of Estimate!!Total:!!Africa:!!Eastern Africa:!!Somalia',
+ 'B05006_100M': 'Margin of Error!!Total:!!Africa:!!Eastern Africa:!!Somalia',
+ 'B05006_100MA': 'Annotation of Margin of Error!!Total:!!Africa:!!Eastern Africa:!!Somalia',
+ 'B05006_101E': 'Estimate!!Total:!!Africa:!!Eastern Africa:!!Tanzania',
+ 'B05006_101EA': 'Annotation of Estimate!!Total:!!Africa:!!Eastern Africa:!!Tanzania',
+ 'B05006_101M': 'Margin of Error!!Total:!!Africa:!!Eastern Africa:!!Tanzania',
+ 'B05006_101MA': 'Annotation of Margin of Error!!Total:!!Africa:!!Eastern Africa:!!Tanzania',
+ 'B05006_102E': 'Estimate!!Total:!!Africa:!!Eastern Africa:!!Uganda',
+ 'B05006_102EA': 'Annotation of Estimate!!Total:!!Africa:!!Eastern Africa:!!Uganda',
+ 'B05006_102M': 'Margin of Error!!Total:!!Africa:!!Eastern Africa:!!Uganda',
+ 'B05006_102MA': 'Annotation of Margin of Error!!Total:!!Africa:!!Eastern Africa:!!Uganda',
+ 'B05006_103E': 'Estimate!!Total:!!Africa:!!Eastern Africa:!!Zimbabwe',
+ 'B05006_103EA': 'Annotation of Estimate!!Total:!!Africa:!!Eastern Africa:!!Zimbabwe',
+ 'B05006_103M': 'Margin of Error!!Total:!!Africa:!!Eastern Africa:!!Zimbabwe',
+ 'B05006_103MA': 'Annotation of Margin of Error!!Total:!!Africa:!!Eastern Africa:!!Zimbabwe',
+ 'B05006_104E': 'Estimate!!Total:!!Africa:!!Eastern Africa:!!Other Eastern Africa',
+ 'B05006_104EA': 'Annotation of Estimate!!Total:!!Africa:!!Eastern Africa:!!Other Eastern Africa',
+ 'B05006_104M': 'Margin of Error!!Total:!!Africa:!!Eastern Africa:!!Other Eastern Africa',
+ 'B05006_104MA': 'Annotation of Margin of Error!!Total:!!Africa:!!Eastern Africa:!!Other Eastern Africa',
+ 'B05006_105E': 'Estimate!!Total:!!Africa:!!Middle Africa:',
+ 'B05006_105EA': 'Annotation of Estimate!!Total:!!Africa:!!Middle Africa:',
+ 'B05006_105M': 'Margin of Error!!Total:!!Africa:!!Middle Africa:',
+ 'B05006_105MA': 'Annotation of Margin of Error!!Total:!!Africa:!!Middle Africa:',
+ 'B05006_106E': 'Estimate!!Total:!!Africa:!!Middle Africa:!!Cameroon',
+ 'B05006_106EA': 'Annotation of Estimate!!Total:!!Africa:!!Middle Africa:!!Cameroon',
+ 'B05006_106M': 'Margin of Error!!Total:!!Africa:!!Middle Africa:!!Cameroon',
+ 'B05006_106MA': 'Annotation of Margin of Error!!Total:!!Africa:!!Middle Africa:!!Cameroon',
+ 'B05006_107E': 'Estimate!!Total:!!Africa:!!Middle Africa:!!Congo',
+ 'B05006_107EA': 'Annotation of Estimate!!Total:!!Africa:!!Middle Africa:!!Congo',
+ 'B05006_107M': 'Margin of Error!!Total:!!Africa:!!Middle Africa:!!Congo',
+ 'B05006_107MA': 'Annotation of Margin of Error!!Total:!!Africa:!!Middle Africa:!!Congo',
+ 'B05006_108E': 'Estimate!!Total:!!Africa:!!Middle Africa:!!Democratic Republic of Congo (Zaire)',
+ 'B05006_108EA': 'Annotation of Estimate!!Total:!!Africa:!!Middle Africa:!!Democratic Republic of Congo (Zaire)',
+ 'B05006_108M': 'Margin of Error!!Total:!!Africa:!!Middle Africa:!!Democratic Republic of Congo (Zaire)',
+ 'B05006_108MA': 'Annotation of Margin of Error!!Total:!!Africa:!!Middle Africa:!!Democratic Republic of Congo (Zaire)',
+ 'B05006_109E': 'Estimate!!Total:!!Africa:!!Middle Africa:!!Other Middle Africa',
+ 'B05006_109EA': 'Annotation of Estimate!!Total:!!Africa:!!Middle Africa:!!Other Middle Africa',
+ 'B05006_109M': 'Margin of Error!!Total:!!Africa:!!Middle Africa:!!Other Middle Africa',
+ 'B05006_109MA': 'Annotation of Margin of Error!!Total:!!Africa:!!Middle Africa:!!Other Middle Africa',
+ 'B05006_110E': 'Estimate!!Total:!!Africa:!!Northern Africa:',
+ 'B05006_110EA': 'Annotation of Estimate!!Total:!!Africa:!!Northern Africa:',
+ 'B05006_110M': 'Margin of Error!!Total:!!Africa:!!Northern Africa:',
+ 'B05006_110MA': 'Annotation of Margin of Error!!Total:!!Africa:!!Northern Africa:',
+ 'B05006_111E': 'Estimate!!Total:!!Africa:!!Northern Africa:!!Algeria',
+ 'B05006_111EA': 'Annotation of Estimate!!Total:!!Africa:!!Northern Africa:!!Algeria',
+ 'B05006_111M': 'Margin of Error!!Total:!!Africa:!!Northern Africa:!!Algeria',
+ 'B05006_111MA': 'Annotation of Margin of Error!!Total:!!Africa:!!Northern Africa:!!Algeria',
+ 'B05006_112E': 'Estimate!!Total:!!Africa:!!Northern Africa:!!Egypt',
+ 'B05006_112EA': 'Annotation of Estimate!!Total:!!Africa:!!Northern Africa:!!Egypt',
+ 'B05006_112M': 'Margin of Error!!Total:!!Africa:!!Northern Africa:!!Egypt',
+ 'B05006_112MA': 'Annotation of Margin of Error!!Total:!!Africa:!!Northern Africa:!!Egypt',
+ 'B05006_113E': 'Estimate!!Total:!!Africa:!!Northern Africa:!!Morocco',
+ 'B05006_113EA': 'Annotation of Estimate!!Total:!!Africa:!!Northern Africa:!!Morocco',
+ 'B05006_113M': 'Margin of Error!!Total:!!Africa:!!Northern Africa:!!Morocco',
+ 'B05006_113MA': 'Annotation of Margin of Error!!Total:!!Africa:!!Northern Africa:!!Morocco',
+ 'B05006_114E': 'Estimate!!Total:!!Africa:!!Northern Africa:!!Sudan',
+ 'B05006_114EA': 'Annotation of Estimate!!Total:!!Africa:!!Northern Africa:!!Sudan',
+ 'B05006_114M': 'Margin of Error!!Total:!!Africa:!!Northern Africa:!!Sudan',
+ 'B05006_114MA': 'Annotation of Margin of Error!!Total:!!Africa:!!Northern Africa:!!Sudan',
+ 'B05006_115E': 'Estimate!!Total:!!Africa:!!Northern Africa:!!Other Northern Africa',
+ 'B05006_115EA': 'Annotation of Estimate!!Total:!!Africa:!!Northern Africa:!!Other Northern Africa',
+ 'B05006_115M': 'Margin of Error!!Total:!!Africa:!!Northern Africa:!!Other Northern Africa',
+ 'B05006_115MA': 'Annotation of Margin of Error!!Total:!!Africa:!!Northern Africa:!!Other Northern Africa',
+ 'B05006_116E': 'Estimate!!Total:!!Africa:!!Southern Africa:',
+ 'B05006_116EA': 'Annotation of Estimate!!Total:!!Africa:!!Southern Africa:',
+ 'B05006_116M': 'Margin of Error!!Total:!!Africa:!!Southern Africa:',
+ 'B05006_116MA': 'Annotation of Margin of Error!!Total:!!Africa:!!Southern Africa:',
+ 'B05006_117E': 'Estimate!!Total:!!Africa:!!Southern Africa:!!South Africa',
+ 'B05006_117EA': 'Annotation of Estimate!!Total:!!Africa:!!Southern Africa:!!South Africa',
+ 'B05006_117M': 'Margin of Error!!Total:!!Africa:!!Southern Africa:!!South Africa',
+ 'B05006_117MA': 'Annotation of Margin of Error!!Total:!!Africa:!!Southern Africa:!!South Africa',
+ 'B05006_118E': 'Estimate!!Total:!!Africa:!!Southern Africa:!!Other Southern Africa',
+ 'B05006_118EA': 'Annotation of Estimate!!Total:!!Africa:!!Southern Africa:!!Other Southern Africa',
+ 'B05006_118M': 'Margin of Error!!Total:!!Africa:!!Southern Africa:!!Other Southern Africa',
+ 'B05006_118MA': 'Annotation of Margin of Error!!Total:!!Africa:!!Southern Africa:!!Other Southern Africa',
+ 'B05006_119E': 'Estimate!!Total:!!Africa:!!Western Africa:',
+ 'B05006_119EA': 'Annotation of Estimate!!Total:!!Africa:!!Western Africa:',
+ 'B05006_119M': 'Margin of Error!!Total:!!Africa:!!Western Africa:',
+ 'B05006_119MA': 'Annotation of Margin of Error!!Total:!!Africa:!!Western Africa:',
+ 'B05006_120E': 'Estimate!!Total:!!Africa:!!Western Africa:!!Cabo Verde',
+ 'B05006_120EA': 'Annotation of Estimate!!Total:!!Africa:!!Western Africa:!!Cabo Verde',
+ 'B05006_120M': 'Margin of Error!!Total:!!Africa:!!Western Africa:!!Cabo Verde',
+ 'B05006_120MA': 'Annotation of Margin of Error!!Total:!!Africa:!!Western Africa:!!Cabo Verde',
+ 'B05006_121E': 'Estimate!!Total:!!Africa:!!Western Africa:!!Ghana',
+ 'B05006_121EA': 'Annotation of Estimate!!Total:!!Africa:!!Western Africa:!!Ghana',
+ 'B05006_121M': 'Margin of Error!!Total:!!Africa:!!Western Africa:!!Ghana',
+ 'B05006_121MA': 'Annotation of Margin of Error!!Total:!!Africa:!!Western Africa:!!Ghana',
+ 'B05006_122E': 'Estimate!!Total:!!Africa:!!Western Africa:!!Ivory Coast',
+ 'B05006_122EA': 'Annotation of Estimate!!Total:!!Africa:!!Western Africa:!!Ivory Coast',
+ 'B05006_122M': 'Margin of Error!!Total:!!Africa:!!Western Africa:!!Ivory Coast',
+ 'B05006_122MA': 'Annotation of Margin of Error!!Total:!!Africa:!!Western Africa:!!Ivory Coast',
+ 'B05006_123E': 'Estimate!!Total:!!Africa:!!Western Africa:!!Liberia',
+ 'B05006_123EA': 'Annotation of Estimate!!Total:!!Africa:!!Western Africa:!!Liberia',
+ 'B05006_123M': 'Margin of Error!!Total:!!Africa:!!Western Africa:!!Liberia',
+ 'B05006_123MA': 'Annotation of Margin of Error!!Total:!!Africa:!!Western Africa:!!Liberia',
+ 'B05006_124E': 'Estimate!!Total:!!Africa:!!Western Africa:!!Nigeria',
+ 'B05006_124EA': 'Annotation of Estimate!!Total:!!Africa:!!Western Africa:!!Nigeria',
+ 'B05006_124M': 'Margin of Error!!Total:!!Africa:!!Western Africa:!!Nigeria',
+ 'B05006_124MA': 'Annotation of Margin of Error!!Total:!!Africa:!!Western Africa:!!Nigeria',
+ 'B05006_125E': 'Estimate!!Total:!!Africa:!!Western Africa:!!Senegal',
+ 'B05006_125EA': 'Annotation of Estimate!!Total:!!Africa:!!Western Africa:!!Senegal',
+ 'B05006_125M': 'Margin of Error!!Total:!!Africa:!!Western Africa:!!Senegal',
+ 'B05006_125MA': 'Annotation of Margin of Error!!Total:!!Africa:!!Western Africa:!!Senegal',
+ 'B05006_126E': 'Estimate!!Total:!!Africa:!!Western Africa:!!Sierra Leone',
+ 'B05006_126EA': 'Annotation of Estimate!!Total:!!Africa:!!Western Africa:!!Sierra Leone',
+ 'B05006_126M': 'Margin of Error!!Total:!!Africa:!!Western Africa:!!Sierra Leone',
+ 'B05006_126MA': 'Annotation of Margin of Error!!Total:!!Africa:!!Western Africa:!!Sierra Leone',
+ 'B05006_127E': 'Estimate!!Total:!!Africa:!!Western Africa:!!Togo',
+ 'B05006_127EA': 'Annotation of Estimate!!Total:!!Africa:!!Western Africa:!!Togo',
+ 'B05006_127M': 'Margin of Error!!Total:!!Africa:!!Western Africa:!!Togo',
+ 'B05006_127MA': 'Annotation of Margin of Error!!Total:!!Africa:!!Western Africa:!!Togo',
+ 'B05006_128E': 'Estimate!!Total:!!Africa:!!Western Africa:!!Other Western Africa',
+ 'B05006_128EA': 'Annotation of Estimate!!Total:!!Africa:!!Western Africa:!!Other Western Africa',
+ 'B05006_128M': 'Margin of Error!!Total:!!Africa:!!Western Africa:!!Other Western Africa',
+ 'B05006_128MA': 'Annotation of Margin of Error!!Total:!!Africa:!!Western Africa:!!Other Western Africa',
+ 'B05006_129E': 'Estimate!!Total:!!Africa:!!Africa, n.e.c.',
+ 'B05006_129EA': 'Annotation of Estimate!!Total:!!Africa:!!Africa, n.e.c.',
+ 'B05006_129M': 'Margin of Error!!Total:!!Africa:!!Africa, n.e.c.',
+ 'B05006_129MA': 'Annotation of Margin of Error!!Total:!!Africa:!!Africa, n.e.c.',
+ 'B05006_130E': 'Estimate!!Total:!!Oceania:',
+ 'B05006_130EA': 'Annotation of Estimate!!Total:!!Oceania:',
+ 'B05006_130M': 'Margin of Error!!Total:!!Oceania:',
+ 'B05006_130MA': 'Annotation of Margin of Error!!Total:!!Oceania:',
+ 'B05006_131E': 'Estimate!!Total:!!Oceania:!!Australia and New Zealand Subregion:',
+ 'B05006_131EA': 'Annotation of Estimate!!Total:!!Oceania:!!Australia and New Zealand Subregion:',
+ 'B05006_131M': 'Margin of Error!!Total:!!Oceania:!!Australia and New Zealand Subregion:',
+ 'B05006_131MA': 'Annotation of Margin of Error!!Total:!!Oceania:!!Australia and New Zealand Subregion:',
+ 'B05006_132E': 'Estimate!!Total:!!Oceania:!!Australia and New Zealand Subregion:!!Australia',
+ 'B05006_132EA': 'Annotation of Estimate!!Total:!!Oceania:!!Australia and New Zealand Subregion:!!Australia',
+ 'B05006_132M': 'Margin of Error!!Total:!!Oceania:!!Australia and New Zealand Subregion:!!Australia',
+ 'B05006_132MA': 'Annotation of Margin of Error!!Total:!!Oceania:!!Australia and New Zealand Subregion:!!Australia',
+ 'B05006_133E': 'Estimate!!Total:!!Oceania:!!Australia and New Zealand Subregion:!!Other Australian and New Zealand Subregion',
+ 'B05006_133EA': 'Annotation of Estimate!!Total:!!Oceania:!!Australia and New Zealand Subregion:!!Other Australian and New Zealand Subregion',
+ 'B05006_133M': 'Margin of Error!!Total:!!Oceania:!!Australia and New Zealand Subregion:!!Other Australian and New Zealand Subregion',
+ 'B05006_133MA': 'Annotation of Margin of Error!!Total:!!Oceania:!!Australia and New Zealand Subregion:!!Other Australian and New Zealand Subregion',
+ 'B05006_134E': 'Estimate!!Total:!!Oceania:!!Fiji',
+ 'B05006_134EA': 'Annotation of Estimate!!Total:!!Oceania:!!Fiji',
+ 'B05006_134M': 'Margin of Error!!Total:!!Oceania:!!Fiji',
+ 'B05006_134MA': 'Annotation of Margin of Error!!Total:!!Oceania:!!Fiji',
+ 'B05006_135E': 'Estimate!!Total:!!Oceania:!!Marshall Islands',
+ 'B05006_135EA': 'Annotation of Estimate!!Total:!!Oceania:!!Marshall Islands',
+ 'B05006_135M': 'Margin of Error!!Total:!!Oceania:!!Marshall Islands',
+ 'B05006_135MA': 'Annotation of Margin of Error!!Total:!!Oceania:!!Marshall Islands',
+ 'B05006_136E': 'Estimate!!Total:!!Oceania:!!Micronesia',
+ 'B05006_136EA': 'Annotation of Estimate!!Total:!!Oceania:!!Micronesia',
+ 'B05006_136M': 'Margin of Error!!Total:!!Oceania:!!Micronesia',
+ 'B05006_136MA': 'Annotation of Margin of Error!!Total:!!Oceania:!!Micronesia',
+ 'B05006_137E': 'Estimate!!Total:!!Oceania:!!Oceania, n.e.c.',
+ 'B05006_137EA': 'Annotation of Estimate!!Total:!!Oceania:!!Oceania, n.e.c.',
+ 'B05006_137M': 'Margin of Error!!Total:!!Oceania:!!Oceania, n.e.c.',
+ 'B05006_137MA': 'Annotation of Margin of Error!!Total:!!Oceania:!!Oceania, n.e.c.',
+ 'B05006_138E': 'Estimate!!Total:!!Americas:',
+ 'B05006_138EA': 'Annotation of Estimate!!Total:!!Americas:',
+ 'B05006_138M': 'Margin of Error!!Total:!!Americas:',
+ 'B05006_138MA': 'Annotation of Margin of Error!!Total:!!Americas:',
+ 'B05006_139E': 'Estimate!!Total:!!Americas:!!Latin America:',
+ 'B05006_139EA': 'Annotation of Estimate!!Total:!!Americas:!!Latin America:',
+ 'B05006_139M': 'Margin of Error!!Total:!!Americas:!!Latin America:',
+ 'B05006_139MA': 'Annotation of Margin of Error!!Total:!!Americas:!!Latin America:',
+ 'B05006_140E': 'Estimate!!Total:!!Americas:!!Latin America:!!Caribbean:',
+ 'B05006_140EA': 'Annotation of Estimate!!Total:!!Americas:!!Latin America:!!Caribbean:',
+ 'B05006_140M': 'Margin of Error!!Total:!!Americas:!!Latin America:!!Caribbean:',
+ 'B05006_140MA': 'Annotation of Margin of Error!!Total:!!Americas:!!Latin America:!!Caribbean:',
+ 'B05006_141E': 'Estimate!!Total:!!Americas:!!Latin America:!!Caribbean:!!Bahamas',
+ 'B05006_141EA': 'Annotation of Estimate!!Total:!!Americas:!!Latin America:!!Caribbean:!!Bahamas',
+ 'B05006_141M': 'Margin of Error!!Total:!!Americas:!!Latin America:!!Caribbean:!!Bahamas',
+ 'B05006_141MA': 'Annotation of Margin of Error!!Total:!!Americas:!!Latin America:!!Caribbean:!!Bahamas',
+ 'B05006_142E': 'Estimate!!Total:!!Americas:!!Latin America:!!Caribbean:!!Barbados',
+ 'B05006_142EA': 'Annotation of Estimate!!Total:!!Americas:!!Latin America:!!Caribbean:!!Barbados',
+ 'B05006_142M': 'Margin of Error!!Total:!!Americas:!!Latin America:!!Caribbean:!!Barbados',
+ 'B05006_142MA': 'Annotation of Margin of Error!!Total:!!Americas:!!Latin America:!!Caribbean:!!Barbados',
+ 'B05006_143E': 'Estimate!!Total:!!Americas:!!Latin America:!!Caribbean:!!Cuba',
+ 'B05006_143EA': 'Annotation of Estimate!!Total:!!Americas:!!Latin America:!!Caribbean:!!Cuba',
+ 'B05006_143M': 'Margin of Error!!Total:!!Americas:!!Latin America:!!Caribbean:!!Cuba',
+ 'B05006_143MA': 'Annotation of Margin of Error!!Total:!!Americas:!!Latin America:!!Caribbean:!!Cuba',
+ 'B05006_144E': 'Estimate!!Total:!!Americas:!!Latin America:!!Caribbean:!!Dominica',
+ 'B05006_144EA': 'Annotation of Estimate!!Total:!!Americas:!!Latin America:!!Caribbean:!!Dominica',
+ 'B05006_144M': 'Margin of Error!!Total:!!Americas:!!Latin America:!!Caribbean:!!Dominica',
+ 'B05006_144MA': 'Annotation of Margin of Error!!Total:!!Americas:!!Latin America:!!Caribbean:!!Dominica',
+ 'B05006_145E': 'Estimate!!Total:!!Americas:!!Latin America:!!Caribbean:!!Dominican Republic',
+ 'B05006_145EA': 'Annotation of Estimate!!Total:!!Americas:!!Latin America:!!Caribbean:!!Dominican Republic',
+ 'B05006_145M': 'Margin of Error!!Total:!!Americas:!!Latin America:!!Caribbean:!!Dominican Republic',
+ 'B05006_145MA': 'Annotation of Margin of Error!!Total:!!Americas:!!Latin America:!!Caribbean:!!Dominican Republic',
+ 'B05006_146E': 'Estimate!!Total:!!Americas:!!Latin America:!!Caribbean:!!Grenada',
+ 'B05006_146EA': 'Annotation of Estimate!!Total:!!Americas:!!Latin America:!!Caribbean:!!Grenada',
+ 'B05006_146M': 'Margin of Error!!Total:!!Americas:!!Latin America:!!Caribbean:!!Grenada',
+ 'B05006_146MA': 'Annotation of Margin of Error!!Total:!!Americas:!!Latin America:!!Caribbean:!!Grenada',
+ 'B05006_147E': 'Estimate!!Total:!!Americas:!!Latin America:!!Caribbean:!!Haiti',
+ 'B05006_147EA': 'Annotation of Estimate!!Total:!!Americas:!!Latin America:!!Caribbean:!!Haiti',
+ 'B05006_147M': 'Margin of Error!!Total:!!Americas:!!Latin America:!!Caribbean:!!Haiti',
+ 'B05006_147MA': 'Annotation of Margin of Error!!Total:!!Americas:!!Latin America:!!Caribbean:!!Haiti',
+ 'B05006_148E': 'Estimate!!Total:!!Americas:!!Latin America:!!Caribbean:!!Jamaica',
+ 'B05006_148EA': 'Annotation of Estimate!!Total:!!Americas:!!Latin America:!!Caribbean:!!Jamaica',
+ 'B05006_148M': 'Margin of Error!!Total:!!Americas:!!Latin America:!!Caribbean:!!Jamaica',
+ 'B05006_148MA': 'Annotation of Margin of Error!!Total:!!Americas:!!Latin America:!!Caribbean:!!Jamaica',
+ 'B05006_149E': 'Estimate!!Total:!!Americas:!!Latin America:!!Caribbean:!!St. Lucia',
+ 'B05006_149EA': 'Annotation of Estimate!!Total:!!Americas:!!Latin America:!!Caribbean:!!St. Lucia',
+ 'B05006_149M': 'Margin of Error!!Total:!!Americas:!!Latin America:!!Caribbean:!!St. Lucia',
+ 'B05006_149MA': 'Annotation of Margin of Error!!Total:!!Americas:!!Latin America:!!Caribbean:!!St. Lucia',
+ 'B05006_150E': 'Estimate!!Total:!!Americas:!!Latin America:!!Caribbean:!!St. Vincent and the Grenadines',
+ 'B05006_150EA': 'Annotation of Estimate!!Total:!!Americas:!!Latin America:!!Caribbean:!!St. Vincent and the Grenadines',
+ 'B05006_150M': 'Margin of Error!!Total:!!Americas:!!Latin America:!!Caribbean:!!St. Vincent and the Grenadines',
+ 'B05006_150MA': 'Annotation of Margin of Error!!Total:!!Americas:!!Latin America:!!Caribbean:!!St. Vincent and the Grenadines',
+ 'B05006_151E': 'Estimate!!Total:!!Americas:!!Latin America:!!Caribbean:!!Trinidad and Tobago',
+ 'B05006_151EA': 'Annotation of Estimate!!Total:!!Americas:!!Latin America:!!Caribbean:!!Trinidad and Tobago',
+ 'B05006_151M': 'Margin of Error!!Total:!!Americas:!!Latin America:!!Caribbean:!!Trinidad and Tobago',
+ 'B05006_151MA': 'Annotation of Margin of Error!!Total:!!Americas:!!Latin America:!!Caribbean:!!Trinidad and Tobago',
+ 'B05006_152E': 'Estimate!!Total:!!Americas:!!Latin America:!!Caribbean:!!West Indies',
+ 'B05006_152EA': 'Annotation of Estimate!!Total:!!Americas:!!Latin America:!!Caribbean:!!West Indies',
+ 'B05006_152M': 'Margin of Error!!Total:!!Americas:!!Latin America:!!Caribbean:!!West Indies',
+ 'B05006_152MA': 'Annotation of Margin of Error!!Total:!!Americas:!!Latin America:!!Caribbean:!!West Indies',
+ 'B05006_153E': 'Estimate!!Total:!!Americas:!!Latin America:!!Caribbean:!!Other Caribbean',
+ 'B05006_153EA': 'Annotation of Estimate!!Total:!!Americas:!!Latin America:!!Caribbean:!!Other Caribbean',
+ 'B05006_153M': 'Margin of Error!!Total:!!Americas:!!Latin America:!!Caribbean:!!Other Caribbean',
+ 'B05006_153MA': 'Annotation of Margin of Error!!Total:!!Americas:!!Latin America:!!Caribbean:!!Other Caribbean',
+ 'B05006_154E': 'Estimate!!Total:!!Americas:!!Latin America:!!Central America:',
+ 'B05006_154EA': 'Annotation of Estimate!!Total:!!Americas:!!Latin America:!!Central America:',
+ 'B05006_154M': 'Margin of Error!!Total:!!Americas:!!Latin America:!!Central America:',
+ 'B05006_154MA': 'Annotation of Margin of Error!!Total:!!Americas:!!Latin America:!!Central America:',
+ 'B05006_155E': 'Estimate!!Total:!!Americas:!!Latin America:!!Central America:!!Belize',
+ 'B05006_155EA': 'Annotation of Estimate!!Total:!!Americas:!!Latin America:!!Central America:!!Belize',
+ 'B05006_155M': 'Margin of Error!!Total:!!Americas:!!Latin America:!!Central America:!!Belize',
+ 'B05006_155MA': 'Annotation of Margin of Error!!Total:!!Americas:!!Latin America:!!Central America:!!Belize',
+ 'B05006_156E': 'Estimate!!Total:!!Americas:!!Latin America:!!Central America:!!Costa Rica',
+ 'B05006_156EA': 'Annotation of Estimate!!Total:!!Americas:!!Latin America:!!Central America:!!Costa Rica',
+ 'B05006_156M': 'Margin of Error!!Total:!!Americas:!!Latin America:!!Central America:!!Costa Rica',
+ 'B05006_156MA': 'Annotation of Margin of Error!!Total:!!Americas:!!Latin America:!!Central America:!!Costa Rica',
+ 'B05006_157E': 'Estimate!!Total:!!Americas:!!Latin America:!!Central America:!!El Salvador',
+ 'B05006_157EA': 'Annotation of Estimate!!Total:!!Americas:!!Latin America:!!Central America:!!El Salvador',
+ 'B05006_157M': 'Margin of Error!!Total:!!Americas:!!Latin America:!!Central America:!!El Salvador',
+ 'B05006_157MA': 'Annotation of Margin of Error!!Total:!!Americas:!!Latin America:!!Central America:!!El Salvador',
+ 'B05006_158E': 'Estimate!!Total:!!Americas:!!Latin America:!!Central America:!!Guatemala',
+ 'B05006_158EA': 'Annotation of Estimate!!Total:!!Americas:!!Latin America:!!Central America:!!Guatemala',
+ 'B05006_158M': 'Margin of Error!!Total:!!Americas:!!Latin America:!!Central America:!!Guatemala',
+ 'B05006_158MA': 'Annotation of Margin of Error!!Total:!!Americas:!!Latin America:!!Central America:!!Guatemala',
+ 'B05006_159E': 'Estimate!!Total:!!Americas:!!Latin America:!!Central America:!!Honduras',
+ 'B05006_159EA': 'Annotation of Estimate!!Total:!!Americas:!!Latin America:!!Central America:!!Honduras',
+ 'B05006_159M': 'Margin of Error!!Total:!!Americas:!!Latin America:!!Central America:!!Honduras',
+ 'B05006_159MA': 'Annotation of Margin of Error!!Total:!!Americas:!!Latin America:!!Central America:!!Honduras',
+ 'B05006_160E': 'Estimate!!Total:!!Americas:!!Latin America:!!Central America:!!Mexico',
+ 'B05006_160EA': 'Annotation of Estimate!!Total:!!Americas:!!Latin America:!!Central America:!!Mexico',
+ 'B05006_160M': 'Margin of Error!!Total:!!Americas:!!Latin America:!!Central America:!!Mexico',
+ 'B05006_160MA': 'Annotation of Margin of Error!!Total:!!Americas:!!Latin America:!!Central America:!!Mexico',
+ 'B05006_161E': 'Estimate!!Total:!!Americas:!!Latin America:!!Central America:!!Nicaragua',
+ 'B05006_161EA': 'Annotation of Estimate!!Total:!!Americas:!!Latin America:!!Central America:!!Nicaragua',
+ 'B05006_161M': 'Margin of Error!!Total:!!Americas:!!Latin America:!!Central America:!!Nicaragua',
+ 'B05006_161MA': 'Annotation of Margin of Error!!Total:!!Americas:!!Latin America:!!Central America:!!Nicaragua',
+ 'B05006_162E': 'Estimate!!Total:!!Americas:!!Latin America:!!Central America:!!Panama',
+ 'B05006_162EA': 'Annotation of Estimate!!Total:!!Americas:!!Latin America:!!Central America:!!Panama',
+ 'B05006_162M': 'Margin of Error!!Total:!!Americas:!!Latin America:!!Central America:!!Panama',
+ 'B05006_162MA': 'Annotation of Margin of Error!!Total:!!Americas:!!Latin America:!!Central America:!!Panama',
+ 'B05006_163E': 'Estimate!!Total:!!Americas:!!Latin America:!!Central America:!!Other Central America',
+ 'B05006_163EA': 'Annotation of Estimate!!Total:!!Americas:!!Latin America:!!Central America:!!Other Central America',
+ 'B05006_163M': 'Margin of Error!!Total:!!Americas:!!Latin America:!!Central America:!!Other Central America',
+ 'B05006_163MA': 'Annotation of Margin of Error!!Total:!!Americas:!!Latin America:!!Central America:!!Other Central America',
+ 'B05006_164E': 'Estimate!!Total:!!Americas:!!Latin America:!!South America:',
+ 'B05006_164EA': 'Annotation of Estimate!!Total:!!Americas:!!Latin America:!!South America:',
+ 'B05006_164M': 'Margin of Error!!Total:!!Americas:!!Latin America:!!South America:',
+ 'B05006_164MA': 'Annotation of Margin of Error!!Total:!!Americas:!!Latin America:!!South America:',
+ 'B05006_165E': 'Estimate!!Total:!!Americas:!!Latin America:!!South America:!!Argentina',
+ 'B05006_165EA': 'Annotation of Estimate!!Total:!!Americas:!!Latin America:!!South America:!!Argentina',
+ 'B05006_165M': 'Margin of Error!!Total:!!Americas:!!Latin America:!!South America:!!Argentina',
+ 'B05006_165MA': 'Annotation of Margin of Error!!Total:!!Americas:!!Latin America:!!South America:!!Argentina',
+ 'B05006_166E': 'Estimate!!Total:!!Americas:!!Latin America:!!South America:!!Bolivia',
+ 'B05006_166EA': 'Annotation of Estimate!!Total:!!Americas:!!Latin America:!!South America:!!Bolivia',
+ 'B05006_166M': 'Margin of Error!!Total:!!Americas:!!Latin America:!!South America:!!Bolivia',
+ 'B05006_166MA': 'Annotation of Margin of Error!!Total:!!Americas:!!Latin America:!!South America:!!Bolivia',
+ 'B05006_167E': 'Estimate!!Total:!!Americas:!!Latin America:!!South America:!!Brazil',
+ 'B05006_167EA': 'Annotation of Estimate!!Total:!!Americas:!!Latin America:!!South America:!!Brazil',
+ 'B05006_167M': 'Margin of Error!!Total:!!Americas:!!Latin America:!!South America:!!Brazil',
+ 'B05006_167MA': 'Annotation of Margin of Error!!Total:!!Americas:!!Latin America:!!South America:!!Brazil',
+ 'B05006_168E': 'Estimate!!Total:!!Americas:!!Latin America:!!South America:!!Chile',
+ 'B05006_168EA': 'Annotation of Estimate!!Total:!!Americas:!!Latin America:!!South America:!!Chile',
+ 'B05006_168M': 'Margin of Error!!Total:!!Americas:!!Latin America:!!South America:!!Chile',
+ 'B05006_168MA': 'Annotation of Margin of Error!!Total:!!Americas:!!Latin America:!!South America:!!Chile',
+ 'B05006_169E': 'Estimate!!Total:!!Americas:!!Latin America:!!South America:!!Colombia',
+ 'B05006_169EA': 'Annotation of Estimate!!Total:!!Americas:!!Latin America:!!South America:!!Colombia',
+ 'B05006_169M': 'Margin of Error!!Total:!!Americas:!!Latin America:!!South America:!!Colombia',
+ 'B05006_169MA': 'Annotation of Margin of Error!!Total:!!Americas:!!Latin America:!!South America:!!Colombia',
+ 'B05006_170E': 'Estimate!!Total:!!Americas:!!Latin America:!!South America:!!Ecuador',
+ 'B05006_170EA': 'Annotation of Estimate!!Total:!!Americas:!!Latin America:!!South America:!!Ecuador',
+ 'B05006_170M': 'Margin of Error!!Total:!!Americas:!!Latin America:!!South America:!!Ecuador',
+ 'B05006_170MA': 'Annotation of Margin of Error!!Total:!!Americas:!!Latin America:!!South America:!!Ecuador',
+ 'B05006_171E': 'Estimate!!Total:!!Americas:!!Latin America:!!South America:!!Guyana',
+ 'B05006_171EA': 'Annotation of Estimate!!Total:!!Americas:!!Latin America:!!South America:!!Guyana',
+ 'B05006_171M': 'Margin of Error!!Total:!!Americas:!!Latin America:!!South America:!!Guyana',
+ 'B05006_171MA': 'Annotation of Margin of Error!!Total:!!Americas:!!Latin America:!!South America:!!Guyana',
+ 'B05006_172E': 'Estimate!!Total:!!Americas:!!Latin America:!!South America:!!Peru',
+ 'B05006_172EA': 'Annotation of Estimate!!Total:!!Americas:!!Latin America:!!South America:!!Peru',
+ 'B05006_172M': 'Margin of Error!!Total:!!Americas:!!Latin America:!!South America:!!Peru',
+ 'B05006_172MA': 'Annotation of Margin of Error!!Total:!!Americas:!!Latin America:!!South America:!!Peru',
+ 'B05006_173E': 'Estimate!!Total:!!Americas:!!Latin America:!!South America:!!Uruguay',
+ 'B05006_173EA': 'Annotation of Estimate!!Total:!!Americas:!!Latin America:!!South America:!!Uruguay',
+ 'B05006_173M': 'Margin of Error!!Total:!!Americas:!!Latin America:!!South America:!!Uruguay',
+ 'B05006_173MA': 'Annotation of Margin of Error!!Total:!!Americas:!!Latin America:!!South America:!!Uruguay',
+ 'B05006_174E': 'Estimate!!Total:!!Americas:!!Latin America:!!South America:!!Venezuela',
+ 'B05006_174EA': 'Annotation of Estimate!!Total:!!Americas:!!Latin America:!!South America:!!Venezuela',
+ 'B05006_174M': 'Margin of Error!!Total:!!Americas:!!Latin America:!!South America:!!Venezuela',
+ 'B05006_174MA': 'Annotation of Margin of Error!!Total:!!Americas:!!Latin America:!!South America:!!Venezuela',
+ 'B05006_175E': 'Estimate!!Total:!!Americas:!!Latin America:!!South America:!!Other South America',
+ 'B05006_175EA': 'Annotation of Estimate!!Total:!!Americas:!!Latin America:!!South America:!!Other South America',
+ 'B05006_175M': 'Margin of Error!!Total:!!Americas:!!Latin America:!!South America:!!Other South America',
+ 'B05006_175MA': 'Annotation of Margin of Error!!Total:!!Americas:!!Latin America:!!South America:!!Other South America',
+ 'B05006_176E': 'Estimate!!Total:!!Americas:!!Northern America:',
+ 'B05006_176EA': 'Annotation of Estimate!!Total:!!Americas:!!Northern America:',
+ 'B05006_176M': 'Margin of Error!!Total:!!Americas:!!Northern America:',
+ 'B05006_176MA': 'Annotation of Margin of Error!!Total:!!Americas:!!Northern America:',
+ 'B05006_177E': 'Estimate!!Total:!!Americas:!!Northern America:!!Canada',
+ 'B05006_177EA': 'Annotation of Estimate!!Total:!!Americas:!!Northern America:!!Canada',
+ 'B05006_177M': 'Margin of Error!!Total:!!Americas:!!Northern America:!!Canada',
+ 'B05006_177MA': 'Annotation of Margin of Error!!Total:!!Americas:!!Northern America:!!Canada',
+ 'B05006_178E': 'Estimate!!Total:!!Americas:!!Northern America:!!Other Northern America',
+ 'B05006_178EA': 'Annotation of Estimate!!Total:!!Americas:!!Northern America:!!Other Northern America',
+ 'B05006_178M': 'Margin of Error!!Total:!!Americas:!!Northern America:!!Other Northern America',
+ 'B05006_178MA': 'Annotation of Margin of Error!!Total:!!Americas:!!Northern America:!!Other Northern America'}
+Get the data by calling CensusAPI¶
+To call the data simply use the above attributes in the CensusAPI class.
+from morpc.census.api import CensusAPI
+
+b05006_2023 = CensusAPI('acs/acs5', 2023, 'B05006', 'region15', scale='tract')
+2026-01-06 15:55:41,982 | INFO | morpc.census.api.CensusAPI.census-acs-acs5-2023-county-tract-region15-b05006.__init__: Initializing CENSUS_API_DATA object for census-acs-acs5-2023-county-tract-region15-b05006.
+2026-01-06 15:55:41,983 | INFO | morpc.req.get_json_safely: Getting data from https://api.census.gov/data/2023/acs/acs5/groups.json with parameters None.
+2026-01-06 15:55:41,983 | INFO | morpc.req.get_json_safely: Getting data from https://api.census.gov/data/2023/acs/acs5/groups.json with parameters None.
+2026-01-06 15:55:42,822 | INFO | morpc.census.api.CensusAPI.census-acs-acs5-2023-county-tract-region15-b05006.validate: Validating selected parameters
+2026-01-06 15:55:42,823 | INFO | morpc.census.api.valid_survey_table: acs/acs5 is valid and implemented.
+2026-01-06 15:55:42,825 | INFO | morpc.census.api.valid_vintage: 2023 is valid vintage for acs/acs5
+2026-01-06 15:55:42,827 | INFO | morpc.req.get_json_safely: Getting data from https://api.census.gov/data/2023/acs/acs5/groups.json with parameters None.
+2026-01-06 15:55:43,471 | INFO | morpc.census.api.valid_group: Group B05006 valid group for 2023 acs/acs5.
+2026-01-06 15:55:43,473 | INFO | morpc.req.get_json_safely: Getting data from https://api.census.gov/data/2023/acs/acs5/groups/B05006.json with parameters None.
+2026-01-06 15:55:43,771 | INFO | morpc.census.api.__init__: Building Request URL and Parameters.
+2026-01-06 15:55:43,772 | INFO | morpc.census.api.get_query_url: Base URL for query is https://api.census.gov/data/2023/acs/acs5?
+2026-01-06 15:55:43,774 | INFO | morpc.census.api.get_params: 'get' parameters for query are GEO_ID,NAME,group(B05006)
+2026-01-06 15:55:43,775 | INFO | morpc.census.api.geo_params_from_scope_scale: Scale tract specified for scope region15.
+2026-01-06 15:55:43,776 | INFO | morpc.census.api.geo_params_from_scope_scale: Scope region15 already has 'in' parameter. Converting to ucgid=pseudo() type predicate.
+2026-01-06 15:55:43,777 | INFO | morpc.req.get_json_safely: Getting data from https://api.census.gov/data/2023/geoinfo?get=GEO_ID with parameters {'in': 'state:39', 'for': 'county:041,045,049,089,097,129,159,083,101,117,047,073,091,127,141'}.
+2026-01-06 15:55:44,272 | INFO | morpc.census.api.pseudos_from_scale_scope: Returning pseudos for 1400000 in ['0500000US39041', '0500000US39045', '0500000US39047', '0500000US39049', '0500000US39073', '0500000US39083', '0500000US39089', '0500000US39091', '0500000US39097', '0500000US39101', '0500000US39117', '0500000US39127', '0500000US39129', '0500000US39141', '0500000US39159']
+2026-01-06 15:55:44,273 | INFO | morpc.census.api.get_api_request: api request as URL: https://api.census.gov/data/2023/acs/acs5? and PARAMETERS: {'get': 'GEO_ID,NAME,group(B05006)', 'ucgid': 'pseudo(0500000US39041$1400000,0500000US39045$1400000,0500000US39047$1400000,0500000US39049$1400000,0500000US39073$1400000,0500000US39083$1400000,0500000US39089$1400000,0500000US39091$1400000,0500000US39097$1400000,0500000US39101$1400000,0500000US39117$1400000,0500000US39127$1400000,0500000US39129$1400000,0500000US39141$1400000,0500000US39159$1400000)'}
+2026-01-06 15:55:44,274 | INFO | morpc.census.api.__init__: Getting data from https://api.census.gov/data/2023/acs/acs5? with parameters {'get': 'GEO_ID,NAME,group(B05006)', 'ucgid': 'pseudo(0500000US39041$1400000,0500000US39045$1400000,0500000US39047$1400000,0500000US39049$1400000,0500000US39073$1400000,0500000US39083$1400000,0500000US39089$1400000,0500000US39091$1400000,0500000US39097$1400000,0500000US39101$1400000,0500000US39117$1400000,0500000US39127$1400000,0500000US39129$1400000,0500000US39141$1400000,0500000US39159$1400000)'}.
+2026-01-06 15:55:44,275 | INFO | morpc.census.api.get: Found group B05006 parameter. Ignoring variable limits.
+2026-01-06 15:55:44,276 | INFO | morpc.req.get_text_safely: Getting data from https://api.census.gov/data/2023/acs/acs5?get=GEO_ID,NAME,group(B05006)&ucgid=pseudo(0500000US39041$1400000,0500000US39045$1400000,0500000US39047$1400000,0500000US39049$1400000,0500000US39073$1400000,0500000US39083$1400000,0500000US39089$1400000,0500000US39091$1400000,0500000US39097$1400000,0500000US39101$1400000,0500000US39117$1400000,0500000US39127$1400000,0500000US39129$1400000,0500000US39141$1400000,0500000US39159$1400000) with parameters None.
+2026-01-06 15:55:46,532 | INFO | morpc.census.api.melt: Melting data into long format.
+
+The raw data is available and stored in the class as .DATA
+b05006_2023.DATA
+| + | GEO_ID | +NAME | +B05006_001E | +B05006_001EA | +B05006_001M | +B05006_001MA | +B05006_002E | +B05006_002EA | +B05006_002M | +B05006_002MA | +... | +B05006_177M | +B05006_177MA | +B05006_178E | +B05006_178EA | +B05006_178M | +B05006_178MA | +GEO_ID.1 | +NAME.1 | +ucgid | +Unnamed: 717 | +
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | +1400000US39041010100 | +Census Tract 101; Delaware County; Ohio | +214 | +NaN | +98 | +NaN | +23 | +NaN | +38 | +NaN | +... | +18 | +NaN | +0 | +NaN | +18 | +NaN | +1400000US39041010100 | +Census Tract 101; Delaware County; Ohio | +1400000US39041010100 | +NaN | +
| 1 | +1400000US39041010200 | +Census Tract 102; Delaware County; Ohio | +150 | +NaN | +114 | +NaN | +20 | +NaN | +32 | +NaN | +... | +18 | +NaN | +0 | +NaN | +18 | +NaN | +1400000US39041010200 | +Census Tract 102; Delaware County; Ohio | +1400000US39041010200 | +NaN | +
| 2 | +1400000US39041010420 | +Census Tract 104.20; Delaware County; Ohio | +0 | +NaN | +13 | +NaN | +0 | +NaN | +13 | +NaN | +... | +13 | +NaN | +0 | +NaN | +13 | +NaN | +1400000US39041010420 | +Census Tract 104.20; Delaware County; Ohio | +1400000US39041010420 | +NaN | +
| 3 | +1400000US39041010421 | +Census Tract 104.21; Delaware County; Ohio | +108 | +NaN | +83 | +NaN | +23 | +NaN | +25 | +NaN | +... | +13 | +NaN | +0 | +NaN | +13 | +NaN | +1400000US39041010421 | +Census Tract 104.21; Delaware County; Ohio | +1400000US39041010421 | +NaN | +
| 4 | +1400000US39041010422 | +Census Tract 104.22; Delaware County; Ohio | +40 | +NaN | +64 | +NaN | +0 | +NaN | +18 | +NaN | +... | +18 | +NaN | +0 | +NaN | +18 | +NaN | +1400000US39041010422 | +Census Tract 104.22; Delaware County; Ohio | +1400000US39041010422 | +NaN | +
| ... | +... | +... | +... | +... | +... | +... | +... | +... | +... | +... | +... | +... | +... | +... | +... | +... | +... | +... | +... | +... | +... | +
| 578 | +1400000US39159050502 | +Census Tract 505.02; Union County; Ohio | +11 | +NaN | +28 | +NaN | +0 | +NaN | +13 | +NaN | +... | +13 | +NaN | +0 | +NaN | +13 | +NaN | +1400000US39159050502 | +Census Tract 505.02; Union County; Ohio | +1400000US39159050502 | +NaN | +
| 579 | +1400000US39159050601 | +Census Tract 506.01; Union County; Ohio | +2241 | +NaN | +296 | +NaN | +112 | +NaN | +102 | +NaN | +... | +60 | +NaN | +0 | +NaN | +20 | +NaN | +1400000US39159050601 | +Census Tract 506.01; Union County; Ohio | +1400000US39159050601 | +NaN | +
| 580 | +1400000US39159050602 | +Census Tract 506.02; Union County; Ohio | +291 | +NaN | +123 | +NaN | +10 | +NaN | +16 | +NaN | +... | +29 | +NaN | +0 | +NaN | +13 | +NaN | +1400000US39159050602 | +Census Tract 506.02; Union County; Ohio | +1400000US39159050602 | +NaN | +
| 581 | +1400000US39159050701 | +Census Tract 507.01; Union County; Ohio | +83 | +NaN | +84 | +NaN | +0 | +NaN | +13 | +NaN | +... | +15 | +NaN | +0 | +NaN | +13 | +NaN | +1400000US39159050701 | +Census Tract 507.01; Union County; Ohio | +1400000US39159050701 | +NaN | +
| 582 | +1400000US39159050702 | +Census Tract 507.02; Union County; Ohio | +24 | +NaN | +29 | +NaN | +2 | +NaN | +4 | +NaN | +... | +13 | +NaN | +0 | +NaN | +13 | +NaN | +1400000US39159050702 | +Census Tract 507.02; Union County; Ohio | +1400000US39159050702 | +NaN | +
583 rows × 718 columns
+The class also automatically creates a long table format which is the format we will save the data as.
+b05006_2023.LONG
+| + | GEO_ID | +NAME | +reference_period | +variable_label | +variable | +estimate | +moe | +
|---|---|---|---|---|---|---|---|
| 0 | +1400000US39041010100 | +Census Tract 101; Delaware County; Ohio | +2023 | +Total: | +B05006_001 | +214 | +98 | +
| 125 | +1400000US39041010100 | +Census Tract 101; Delaware County; Ohio | +2023 | +Total:!!Europe: | +B05006_002 | +23 | +38 | +
| 145 | +1400000US39041010100 | +Census Tract 101; Delaware County; Ohio | +2023 | +Total:!!Europe:!!Northern Europe: | +B05006_003 | +0 | +18 | +
| 146 | +1400000US39041010100 | +Census Tract 101; Delaware County; Ohio | +2023 | +Total:!!Europe:!!Northern Europe:!!Denmark | +B05006_004 | +0 | +18 | +
| 147 | +1400000US39041010100 | +Census Tract 101; Delaware County; Ohio | +2023 | +Total:!!Europe:!!Northern Europe:!!Ireland | +B05006_005 | +0 | +18 | +
| ... | +... | +... | +... | +... | +... | +... | +... | +
| 103669 | +1400000US39159050702 | +Census Tract 507.02; Union County; Ohio | +2023 | +Total:!!Americas:!!Latin America:!!South Ameri... | +B05006_174 | +0 | +13 | +
| 103666 | +1400000US39159050702 | +Census Tract 507.02; Union County; Ohio | +2023 | +Total:!!Americas:!!Latin America:!!South Ameri... | +B05006_175 | +0 | +13 | +
| 103670 | +1400000US39159050702 | +Census Tract 507.02; Union County; Ohio | +2023 | +Total:!!Americas:!!Northern America: | +B05006_176 | +0 | +13 | +
| 103671 | +1400000US39159050702 | +Census Tract 507.02; Union County; Ohio | +2023 | +Total:!!Americas:!!Northern America:!!Canada | +B05006_177 | +0 | +13 | +
| 103672 | +1400000US39159050702 | +Census Tract 507.02; Union County; Ohio | +2023 | +Total:!!Americas:!!Northern America:!!Other No... | +B05006_178 | +0 | +13 | +
103774 rows × 7 columns
+morpc.census.api.DimensionTable¶
+The other class that is implemented is the dimension table. These are typically used for situations in which you want the data to be human readable.
+This is designed to replicate how the Census often represents it's data with the different levels of the variable group as rows and the geography and years as columns.
+from morpc.census.api import DimensionTable
+
+dim_table = DimensionTable(b05006_2023.LONG)
+2026-01-06 15:55:53,177 | INFO | morpc.census.api.DimensionTable.2026-01-06 15:55:53.177584.__init__: Initializing DIMENSION_TABLE object. ++
dim_table.wide()
+2026-01-06 15:55:54,613 | INFO | morpc.census.api.DimensionTable.2026-01-06 15:55:53.177584.wide: Pivoting data into wide format. +2026-01-06 15:55:54,614 | INFO | morpc.census.api.DimensionTable.2026-01-06 15:55:53.177584.create_description_table: Creating description table from variable labels. ++
| + | + | + | + | GEO_ID | +1400000US39041010100 | +1400000US39041010200 | +1400000US39041010420 | +1400000US39041010421 | +1400000US39041010422 | +1400000US39041010520 | +1400000US39041010530 | +1400000US39041011101 | +1400000US39041011102 | +1400000US39041011200 | +... | +1400000US39159050303 | +1400000US39159050304 | +1400000US39159050401 | +1400000US39159050402 | +1400000US39159050501 | +1400000US39159050502 | +1400000US39159050601 | +1400000US39159050602 | +1400000US39159050701 | +1400000US39159050702 | +
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| + | + | + | + | NAME | +Census Tract 101; Delaware County; Ohio | +Census Tract 102; Delaware County; Ohio | +Census Tract 104.20; Delaware County; Ohio | +Census Tract 104.21; Delaware County; Ohio | +Census Tract 104.22; Delaware County; Ohio | +Census Tract 105.20; Delaware County; Ohio | +Census Tract 105.30; Delaware County; Ohio | +Census Tract 111.01; Delaware County; Ohio | +Census Tract 111.02; Delaware County; Ohio | +Census Tract 112; Delaware County; Ohio | +... | +Census Tract 503.03; Union County; Ohio | +Census Tract 503.04; Union County; Ohio | +Census Tract 504.01; Union County; Ohio | +Census Tract 504.02; Union County; Ohio | +Census Tract 505.01; Union County; Ohio | +Census Tract 505.02; Union County; Ohio | +Census Tract 506.01; Union County; Ohio | +Census Tract 506.02; Union County; Ohio | +Census Tract 507.01; Union County; Ohio | +Census Tract 507.02; Union County; Ohio | +
| + | + | + | + | reference_period | +2023 | +2023 | +2023 | +2023 | +2023 | +2023 | +2023 | +2023 | +2023 | +2023 | +... | +2023 | +2023 | +2023 | +2023 | +2023 | +2023 | +2023 | +2023 | +2023 | +2023 | +
| 0 | +1 | +2 | +3 | +4 | ++ | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + |
| Total: | ++ | + | + | + | 214 | +150 | +0 | +108 | +40 | +663 | +57 | +4 | +124 | +72 | +... | +562 | +57 | +90 | +99 | +163 | +11 | +2241 | +291 | +83 | +24 | +
| Europe: | ++ | + | + | 23 | +20 | +0 | +23 | +0 | +26 | +7 | +0 | +50 | +34 | +... | +56 | +8 | +5 | +0 | +0 | +0 | +112 | +10 | +0 | +2 | +|
| Northern Europe: | ++ | + | 0 | +20 | +0 | +12 | +0 | +12 | +0 | +0 | +0 | +9 | +... | +28 | +0 | +0 | +0 | +0 | +0 | +26 | +0 | +0 | +2 | +||
| Denmark | ++ | 0 | +0 | +0 | +0 | +0 | +0 | +0 | +0 | +0 | +0 | +... | +0 | +0 | +0 | +0 | +0 | +0 | +0 | +0 | +0 | +0 | +|||
| Ireland | ++ | 0 | +0 | +0 | +0 | +0 | +0 | +0 | +0 | +0 | +0 | +... | +0 | +0 | +0 | +0 | +0 | +0 | +0 | +0 | +0 | +0 | +|||
| ... | +... | +... | +... | +... | +... | +... | +... | +... | +... | +... | +... | +... | +... | +... | +... | +... | +... | +... | +... | +... | +... | +... | +... | +... | +|
| Americas: | +Latin America: | +South America: | +Venezuela | +0 | +0 | +0 | +0 | +0 | +0 | +0 | +0 | +0 | +0 | +... | +0 | +0 | +0 | +0 | +0 | +0 | +0 | +28 | +0 | +0 | +|
| Other South America | +0 | +0 | +0 | +0 | +0 | +0 | +0 | +0 | +0 | +0 | +... | +0 | +0 | +0 | +0 | +0 | +0 | +0 | +0 | +0 | +0 | +||||
| Northern America: | ++ | + | 15 | +0 | +0 | +0 | +0 | +0 | +12 | +0 | +0 | +0 | +... | +0 | +0 | +0 | +0 | +58 | +0 | +58 | +17 | +9 | +0 | +||
| Canada | ++ | 15 | +0 | +0 | +0 | +0 | +0 | +12 | +0 | +0 | +0 | +... | +0 | +0 | +0 | +0 | +58 | +0 | +58 | +17 | +9 | +0 | +|||
| Other Northern America | ++ | 0 | +0 | +0 | +0 | +0 | +0 | +0 | +0 | +0 | +0 | +... | +0 | +0 | +0 | +0 | +0 | +0 | +0 | +0 | +0 | +0 | +
174 rows × 583 columns
+Also implemented is the percent table. Which shows the data as a percentage of the total (ie. universe)
+dim_table.percent()
+2026-01-06 15:55:57,665 | INFO | morpc.census.api.DimensionTable.2026-01-06 15:55:53.177584.wide: Pivoting data into wide format. +2026-01-06 15:55:57,667 | INFO | morpc.census.api.DimensionTable.2026-01-06 15:55:53.177584.create_description_table: Creating description table from variable labels. +2026-01-06 15:55:58,231 | INFO | morpc.census.api.DimensionTable.2026-01-06 15:55:53.177584.percent: Creating percent table. ++
| + | + | + | + | GEO_ID | +1400000US39041010100 | +1400000US39041010200 | +1400000US39041010420 | +1400000US39041010421 | +1400000US39041010422 | +1400000US39041010520 | +1400000US39041010530 | +1400000US39041011101 | +1400000US39041011102 | +1400000US39041011200 | +... | +1400000US39159050303 | +1400000US39159050304 | +1400000US39159050401 | +1400000US39159050402 | +1400000US39159050501 | +1400000US39159050502 | +1400000US39159050601 | +1400000US39159050602 | +1400000US39159050701 | +1400000US39159050702 | +
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| + | + | + | + | NAME | +Census Tract 101; Delaware County; Ohio | +Census Tract 102; Delaware County; Ohio | +Census Tract 104.20; Delaware County; Ohio | +Census Tract 104.21; Delaware County; Ohio | +Census Tract 104.22; Delaware County; Ohio | +Census Tract 105.20; Delaware County; Ohio | +Census Tract 105.30; Delaware County; Ohio | +Census Tract 111.01; Delaware County; Ohio | +Census Tract 111.02; Delaware County; Ohio | +Census Tract 112; Delaware County; Ohio | +... | +Census Tract 503.03; Union County; Ohio | +Census Tract 503.04; Union County; Ohio | +Census Tract 504.01; Union County; Ohio | +Census Tract 504.02; Union County; Ohio | +Census Tract 505.01; Union County; Ohio | +Census Tract 505.02; Union County; Ohio | +Census Tract 506.01; Union County; Ohio | +Census Tract 506.02; Union County; Ohio | +Census Tract 507.01; Union County; Ohio | +Census Tract 507.02; Union County; Ohio | +
| + | + | + | + | reference_period | +2023 | +2023 | +2023 | +2023 | +2023 | +2023 | +2023 | +2023 | +2023 | +2023 | +... | +2023 | +2023 | +2023 | +2023 | +2023 | +2023 | +2023 | +2023 | +2023 | +2023 | +
| 0 | +1 | +2 | +3 | +4 | ++ | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + |
| Total: | +Europe: | ++ | + | + | 10.747664 | +13.333333 | +NaN | +21.296296 | +0.0 | +3.921569 | +12.280702 | +0.0 | +40.322581 | +47.222222 | +... | +9.964413 | +14.035088 | +5.555556 | +0.0 | +0.000000 | +0.0 | +4.997769 | +3.436426 | +0.000000 | +8.333333 | +
| Northern Europe: | ++ | + | 0.000000 | +13.333333 | +NaN | +11.111111 | +0.0 | +1.809955 | +0.000000 | +0.0 | +0.000000 | +12.500000 | +... | +4.982206 | +0.000000 | +0.000000 | +0.0 | +0.000000 | +0.0 | +1.160196 | +0.000000 | +0.000000 | +8.333333 | +||
| Denmark | ++ | 0.000000 | +0.000000 | +NaN | +0.000000 | +0.0 | +0.000000 | +0.000000 | +0.0 | +0.000000 | +0.000000 | +... | +0.000000 | +0.000000 | +0.000000 | +0.0 | +0.000000 | +0.0 | +0.000000 | +0.000000 | +0.000000 | +0.000000 | +|||
| Ireland | ++ | 0.000000 | +0.000000 | +NaN | +0.000000 | +0.0 | +0.000000 | +0.000000 | +0.0 | +0.000000 | +0.000000 | +... | +0.000000 | +0.000000 | +0.000000 | +0.0 | +0.000000 | +0.0 | +0.000000 | +0.000000 | +0.000000 | +0.000000 | +|||
| Norway | ++ | 0.000000 | +0.000000 | +NaN | +0.000000 | +0.0 | +0.000000 | +0.000000 | +0.0 | +0.000000 | +0.000000 | +... | +0.000000 | +0.000000 | +0.000000 | +0.0 | +0.000000 | +0.0 | +0.000000 | +0.000000 | +0.000000 | +0.000000 | +|||
| ... | +... | +... | +... | +... | +... | +... | +... | +... | +... | +... | +... | +... | +... | +... | +... | +... | +... | +... | +... | +... | +... | +... | +... | +... | +|
| Americas: | +Latin America: | +South America: | +Venezuela | +0.000000 | +0.000000 | +NaN | +0.000000 | +0.0 | +0.000000 | +0.000000 | +0.0 | +0.000000 | +0.000000 | +... | +0.000000 | +0.000000 | +0.000000 | +0.0 | +0.000000 | +0.0 | +0.000000 | +9.621993 | +0.000000 | +0.000000 | +|
| Other South America | +0.000000 | +0.000000 | +NaN | +0.000000 | +0.0 | +0.000000 | +0.000000 | +0.0 | +0.000000 | +0.000000 | +... | +0.000000 | +0.000000 | +0.000000 | +0.0 | +0.000000 | +0.0 | +0.000000 | +0.000000 | +0.000000 | +0.000000 | +||||
| Northern America: | ++ | + | 7.009346 | +0.000000 | +NaN | +0.000000 | +0.0 | +0.000000 | +21.052632 | +0.0 | +0.000000 | +0.000000 | +... | +0.000000 | +0.000000 | +0.000000 | +0.0 | +35.582822 | +0.0 | +2.588130 | +5.841924 | +10.843373 | +0.000000 | +||
| Canada | ++ | 7.009346 | +0.000000 | +NaN | +0.000000 | +0.0 | +0.000000 | +21.052632 | +0.0 | +0.000000 | +0.000000 | +... | +0.000000 | +0.000000 | +0.000000 | +0.0 | +35.582822 | +0.0 | +2.588130 | +5.841924 | +10.843373 | +0.000000 | +|||
| Other Northern America | ++ | 0.000000 | +0.000000 | +NaN | +0.000000 | +0.0 | +0.000000 | +0.000000 | +0.0 | +0.000000 | +0.000000 | +... | +0.000000 | +0.000000 | +0.000000 | +0.0 | +0.000000 | +0.0 | +0.000000 | +0.000000 | +0.000000 | +0.000000 | +
173 rows × 583 columns
+Timeseries of calls¶
+Dimension table takes any long format table that is formatted similar to the output of CensusAPI.
+This allows for easy implementation of timeseries data by concatenating two long form tables from different years.
+b05006_2018 = CensusAPI('acs/acs5', 2018, 'B12001', 'region15', scale='tract')
+2026-01-06 15:56:03,443 | INFO | morpc.census.api.CensusAPI.census-acs-acs5-2018-county-tract-region15-b12001.__init__: Initializing CENSUS_API_DATA object for census-acs-acs5-2018-county-tract-region15-b12001.
+2026-01-06 15:56:03,444 | INFO | morpc.req.get_json_safely: Getting data from https://api.census.gov/data/2018/acs/acs5/groups.json with parameters None.
+2026-01-06 15:56:03,444 | INFO | morpc.req.get_json_safely: Getting data from https://api.census.gov/data/2018/acs/acs5/groups.json with parameters None.
+2026-01-06 15:56:04,118 | INFO | morpc.census.api.CensusAPI.census-acs-acs5-2018-county-tract-region15-b12001.validate: Validating selected parameters
+2026-01-06 15:56:04,119 | INFO | morpc.census.api.valid_survey_table: acs/acs5 is valid and implemented.
+2026-01-06 15:56:04,120 | INFO | morpc.census.api.valid_vintage: 2018 is valid vintage for acs/acs5
+2026-01-06 15:56:04,122 | INFO | morpc.req.get_json_safely: Getting data from https://api.census.gov/data/2018/acs/acs5/groups.json with parameters None.
+2026-01-06 15:56:04,729 | INFO | morpc.census.api.valid_group: Group B12001 valid group for 2018 acs/acs5.
+2026-01-06 15:56:04,731 | INFO | morpc.req.get_json_safely: Getting data from https://api.census.gov/data/2018/acs/acs5/groups/B12001.json with parameters None.
+2026-01-06 15:56:05,022 | INFO | morpc.census.api.__init__: Building Request URL and Parameters.
+2026-01-06 15:56:05,023 | INFO | morpc.census.api.get_query_url: Base URL for query is https://api.census.gov/data/2018/acs/acs5?
+2026-01-06 15:56:05,024 | INFO | morpc.census.api.get_params: 'get' parameters for query are GEO_ID,NAME,group(B12001)
+2026-01-06 15:56:05,025 | INFO | morpc.census.api.geo_params_from_scope_scale: Scale tract specified for scope region15.
+2026-01-06 15:56:05,027 | INFO | morpc.census.api.geo_params_from_scope_scale: Scope region15 already has 'in' parameter. Converting to ucgid=pseudo() type predicate.
+2026-01-06 15:56:05,028 | INFO | morpc.req.get_json_safely: Getting data from https://api.census.gov/data/2023/geoinfo?get=GEO_ID with parameters {'in': 'state:39', 'for': 'county:041,045,049,089,097,129,159,083,101,117,047,073,091,127,141'}.
+2026-01-06 15:56:05,570 | INFO | morpc.census.api.pseudos_from_scale_scope: Returning pseudos for 1400000 in ['0500000US39041', '0500000US39045', '0500000US39047', '0500000US39049', '0500000US39073', '0500000US39083', '0500000US39089', '0500000US39091', '0500000US39097', '0500000US39101', '0500000US39117', '0500000US39127', '0500000US39129', '0500000US39141', '0500000US39159']
+2026-01-06 15:56:05,571 | INFO | morpc.census.api.get_api_request: api request as URL: https://api.census.gov/data/2018/acs/acs5? and PARAMETERS: {'get': 'GEO_ID,NAME,group(B12001)', 'ucgid': 'pseudo(0500000US39041$1400000,0500000US39045$1400000,0500000US39047$1400000,0500000US39049$1400000,0500000US39073$1400000,0500000US39083$1400000,0500000US39089$1400000,0500000US39091$1400000,0500000US39097$1400000,0500000US39101$1400000,0500000US39117$1400000,0500000US39127$1400000,0500000US39129$1400000,0500000US39141$1400000,0500000US39159$1400000)'}
+2026-01-06 15:56:05,573 | INFO | morpc.census.api.__init__: Getting data from https://api.census.gov/data/2018/acs/acs5? with parameters {'get': 'GEO_ID,NAME,group(B12001)', 'ucgid': 'pseudo(0500000US39041$1400000,0500000US39045$1400000,0500000US39047$1400000,0500000US39049$1400000,0500000US39073$1400000,0500000US39083$1400000,0500000US39089$1400000,0500000US39091$1400000,0500000US39097$1400000,0500000US39101$1400000,0500000US39117$1400000,0500000US39127$1400000,0500000US39129$1400000,0500000US39141$1400000,0500000US39159$1400000)'}.
+2026-01-06 15:56:05,574 | INFO | morpc.census.api.get: Found group B12001 parameter. Ignoring variable limits.
+2026-01-06 15:56:05,575 | INFO | morpc.req.get_text_safely: Getting data from https://api.census.gov/data/2018/acs/acs5?get=GEO_ID,NAME,group(B12001)&ucgid=pseudo(0500000US39041$1400000,0500000US39045$1400000,0500000US39047$1400000,0500000US39049$1400000,0500000US39073$1400000,0500000US39083$1400000,0500000US39089$1400000,0500000US39091$1400000,0500000US39097$1400000,0500000US39101$1400000,0500000US39117$1400000,0500000US39127$1400000,0500000US39129$1400000,0500000US39141$1400000,0500000US39159$1400000) with parameters None.
+2026-01-06 15:56:06,764 | INFO | morpc.census.api.melt: Melting data into long format.
+
+b05006_2018.LONG
+| + | GEO_ID | +NAME | +reference_period | +variable_label | +variable | +estimate | +moe | +
|---|---|---|---|---|---|---|---|
| 0 | +1400000US39041010100 | +Census Tract 101, Delaware County, Ohio | +2018 | +Total | +B12001_001 | +4929 | +314 | +
| 10 | +1400000US39041010100 | +Census Tract 101, Delaware County, Ohio | +2018 | +Total!!Male | +B12001_002 | +2393 | +241 | +
| 12 | +1400000US39041010100 | +Census Tract 101, Delaware County, Ohio | +2018 | +Total!!Male!!Never married | +B12001_003 | +1293 | +188 | +
| 13 | +1400000US39041010100 | +Census Tract 101, Delaware County, Ohio | +2018 | +Total!!Male!!Now married | +B12001_004 | +879 | +115 | +
| 17 | +1400000US39041010100 | +Census Tract 101, Delaware County, Ohio | +2018 | +Total!!Male!!Now married!!Married, spouse present | +B12001_005 | +809 | +97 | +
| ... | +... | +... | +... | +... | +... | +... | +... | +
| 9448 | +1400000US39159050700 | +Census Tract 507, Union County, Ohio | +2018 | +Total!!Female!!Now married!!Married, spouse ab... | +B12001_015 | +76 | +66 | +
| 9450 | +1400000US39159050700 | +Census Tract 507, Union County, Ohio | +2018 | +Total!!Female!!Now married!!Married, spouse ab... | +B12001_016 | +72 | +66 | +
| 9449 | +1400000US39159050700 | +Census Tract 507, Union County, Ohio | +2018 | +Total!!Female!!Now married!!Married, spouse ab... | +B12001_017 | +4 | +6 | +
| 9452 | +1400000US39159050700 | +Census Tract 507, Union County, Ohio | +2018 | +Total!!Female!!Widowed | +B12001_018 | +233 | +98 | +
| 9445 | +1400000US39159050700 | +Census Tract 507, Union County, Ohio | +2018 | +Total!!Female!!Divorced | +B12001_019 | +131 | +52 | +
9462 rows × 7 columns
+import pandas as pd
+
+long = pd.concat([b05006_2023.LONG, b05006_2018.LONG])
+dim_table = DimensionTable(long)
+2026-01-06 15:57:52,916 | INFO | morpc.census.api.DimensionTable.2026-01-06 15:57:52.915989.__init__: Initializing DIMENSION_TABLE object. ++
dim_table.wide()
+2026-01-06 15:58:14,003 | INFO | morpc.census.api.DimensionTable.2026-01-06 15:57:52.915989.wide: Pivoting data into wide format. +2026-01-06 15:58:14,005 | INFO | morpc.census.api.DimensionTable.2026-01-06 15:57:52.915989.create_description_table: Creating description table from variable labels. ++
| + | + | + | + | GEO_ID | +1400000US39041010100 | +1400000US39041010200 | +1400000US39041010420 | +1400000US39041010421 | +1400000US39041010422 | +... | +1400000US39159050500 | +1400000US39159050501 | +1400000US39159050502 | +1400000US39159050601 | +1400000US39159050602 | +1400000US39159050700 | +1400000US39159050701 | +1400000US39159050702 | +|||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| + | + | + | + | NAME | +Census Tract 101, Delaware County, Ohio | +Census Tract 101; Delaware County; Ohio | +Census Tract 102, Delaware County, Ohio | +Census Tract 102; Delaware County; Ohio | +Census Tract 104.20, Delaware County, Ohio | +Census Tract 104.20; Delaware County; Ohio | +Census Tract 104.21, Delaware County, Ohio | +Census Tract 104.21; Delaware County; Ohio | +Census Tract 104.22, Delaware County, Ohio | +Census Tract 104.22; Delaware County; Ohio | +... | +Census Tract 505, Union County, Ohio | +Census Tract 505.01; Union County; Ohio | +Census Tract 505.02; Union County; Ohio | +Census Tract 506.01, Union County, Ohio | +Census Tract 506.01; Union County; Ohio | +Census Tract 506.02, Union County, Ohio | +Census Tract 506.02; Union County; Ohio | +Census Tract 507, Union County, Ohio | +Census Tract 507.01; Union County; Ohio | +Census Tract 507.02; Union County; Ohio | +
| + | + | + | + | reference_period | +2018 | +2023 | +2018 | +2023 | +2018 | +2023 | +2018 | +2023 | +2018 | +2023 | +... | +2018 | +2023 | +2023 | +2018 | +2023 | +2018 | +2023 | +2018 | +2023 | +2023 | +
| 0 | +1 | +2 | +3 | +4 | ++ | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + |
| Total: | ++ | + | + | + | NaN | +214.0 | +NaN | +150.0 | +NaN | +0.0 | +NaN | +108.0 | +NaN | +40.0 | +... | +NaN | +163.0 | +11.0 | +NaN | +2241.0 | +NaN | +291.0 | +NaN | +83.0 | +24.0 | +
| Europe: | ++ | + | + | NaN | +23.0 | +NaN | +20.0 | +NaN | +0.0 | +NaN | +23.0 | +NaN | +0.0 | +... | +NaN | +0.0 | +0.0 | +NaN | +112.0 | +NaN | +10.0 | +NaN | +0.0 | +2.0 | +|
| Northern Europe: | ++ | + | NaN | +0.0 | +NaN | +20.0 | +NaN | +0.0 | +NaN | +12.0 | +NaN | +0.0 | +... | +NaN | +0.0 | +0.0 | +NaN | +26.0 | +NaN | +0.0 | +NaN | +0.0 | +2.0 | +||
| Denmark | ++ | NaN | +0.0 | +NaN | +0.0 | +NaN | +0.0 | +NaN | +0.0 | +NaN | +0.0 | +... | +NaN | +0.0 | +0.0 | +NaN | +0.0 | +NaN | +0.0 | +NaN | +0.0 | +0.0 | +|||
| Ireland | ++ | NaN | +0.0 | +NaN | +0.0 | +NaN | +0.0 | +NaN | +0.0 | +NaN | +0.0 | +... | +NaN | +0.0 | +0.0 | +NaN | +0.0 | +NaN | +0.0 | +NaN | +0.0 | +0.0 | +|||
| ... | +... | +... | +... | +... | +... | +... | +... | +... | +... | +... | +... | +... | +... | +... | +... | +... | +... | +... | +... | +... | +... | +... | +... | +... | +... | +
| Total | +Female | +Now married | +Married, spouse absent | ++ | 139.0 | +NaN | +27.0 | +NaN | +9.0 | +NaN | +54.0 | +NaN | +172.0 | +NaN | +... | +118.0 | +NaN | +NaN | +5.0 | +NaN | +48.0 | +NaN | +76.0 | +NaN | +NaN | +
| Separated | +99.0 | +NaN | +10.0 | +NaN | +9.0 | +NaN | +25.0 | +NaN | +29.0 | +NaN | +... | +80.0 | +NaN | +NaN | +0.0 | +NaN | +39.0 | +NaN | +72.0 | +NaN | +NaN | +||||
| Other | +40.0 | +NaN | +17.0 | +NaN | +0.0 | +NaN | +29.0 | +NaN | +143.0 | +NaN | +... | +38.0 | +NaN | +NaN | +5.0 | +NaN | +9.0 | +NaN | +4.0 | +NaN | +NaN | +||||
| Widowed | ++ | + | 105.0 | +NaN | +121.0 | +NaN | +112.0 | +NaN | +351.0 | +NaN | +123.0 | +NaN | +... | +282.0 | +NaN | +NaN | +137.0 | +NaN | +61.0 | +NaN | +233.0 | +NaN | +NaN | +||
| Divorced | ++ | + | 303.0 | +NaN | +366.0 | +NaN | +263.0 | +NaN | +178.0 | +NaN | +382.0 | +NaN | +... | +467.0 | +NaN | +NaN | +92.0 | +NaN | +204.0 | +NaN | +131.0 | +NaN | +NaN | +||
193 rows × 1081 columns
+percent = dim_table.percent()
+2026-01-06 15:56:11,989 | INFO | morpc.census.api.DimensionTable.2026-01-06 15:56:10.596960.wide: Pivoting data into wide format. +2026-01-06 15:56:11,991 | INFO | morpc.census.api.DimensionTable.2026-01-06 15:56:10.596960.create_description_table: Creating description table from variable labels. +2026-01-06 15:56:11,991 | INFO | morpc.census.api.DimensionTable.2026-01-06 15:56:10.596960.create_description_table: Creating description table from variable labels. +2026-01-06 15:56:12,716 | INFO | morpc.census.api.DimensionTable.2026-01-06 15:56:10.596960.percent: Creating percent table. ++
percent
+| + | + | + | + | GEO_ID | +1400000US39041010100 | +1400000US39041010200 | +1400000US39041010420 | +1400000US39041010421 | +1400000US39041010422 | +... | +1400000US39159050500 | +1400000US39159050501 | +1400000US39159050502 | +1400000US39159050601 | +1400000US39159050602 | +1400000US39159050700 | +1400000US39159050701 | +1400000US39159050702 | +|||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| + | + | + | + | NAME | +Census Tract 101, Delaware County, Ohio | +Census Tract 101; Delaware County; Ohio | +Census Tract 102, Delaware County, Ohio | +Census Tract 102; Delaware County; Ohio | +Census Tract 104.20, Delaware County, Ohio | +Census Tract 104.20; Delaware County; Ohio | +Census Tract 104.21, Delaware County, Ohio | +Census Tract 104.21; Delaware County; Ohio | +Census Tract 104.22, Delaware County, Ohio | +Census Tract 104.22; Delaware County; Ohio | +... | +Census Tract 505, Union County, Ohio | +Census Tract 505.01; Union County; Ohio | +Census Tract 505.02; Union County; Ohio | +Census Tract 506.01, Union County, Ohio | +Census Tract 506.01; Union County; Ohio | +Census Tract 506.02, Union County, Ohio | +Census Tract 506.02; Union County; Ohio | +Census Tract 507, Union County, Ohio | +Census Tract 507.01; Union County; Ohio | +Census Tract 507.02; Union County; Ohio | +
| + | + | + | + | reference_period | +2018 | +2023 | +2018 | +2023 | +2018 | +2023 | +2018 | +2023 | +2018 | +2023 | +... | +2018 | +2023 | +2023 | +2018 | +2023 | +2018 | +2023 | +2018 | +2023 | +2023 | +
| 0 | +1 | +2 | +3 | +4 | ++ | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + |
| Total: | +Europe: | ++ | + | + | NaN | +10.747664 | +NaN | +13.333333 | +NaN | +NaN | +NaN | +21.296296 | +NaN | +0.0 | +... | +NaN | +0.0 | +0.0 | +NaN | +4.997769 | +NaN | +3.436426 | +NaN | +0.0 | +8.333333 | +
| Northern Europe: | ++ | + | NaN | +0.000000 | +NaN | +13.333333 | +NaN | +NaN | +NaN | +11.111111 | +NaN | +0.0 | +... | +NaN | +0.0 | +0.0 | +NaN | +1.160196 | +NaN | +0.000000 | +NaN | +0.0 | +8.333333 | +||
| Denmark | ++ | NaN | +0.000000 | +NaN | +0.000000 | +NaN | +NaN | +NaN | +0.000000 | +NaN | +0.0 | +... | +NaN | +0.0 | +0.0 | +NaN | +0.000000 | +NaN | +0.000000 | +NaN | +0.0 | +0.000000 | +|||
| Ireland | ++ | NaN | +0.000000 | +NaN | +0.000000 | +NaN | +NaN | +NaN | +0.000000 | +NaN | +0.0 | +... | +NaN | +0.0 | +0.0 | +NaN | +0.000000 | +NaN | +0.000000 | +NaN | +0.0 | +0.000000 | +|||
| Norway | ++ | NaN | +0.000000 | +NaN | +0.000000 | +NaN | +NaN | +NaN | +0.000000 | +NaN | +0.0 | +... | +NaN | +0.0 | +0.0 | +NaN | +0.000000 | +NaN | +0.000000 | +NaN | +0.0 | +0.000000 | +|||
| ... | +... | +... | +... | +... | +... | +... | +... | +... | +... | +... | +... | +... | +... | +... | +... | +... | +... | +... | +... | +... | +... | +... | +... | +... | +... | +
| Total | +Female | +Now married | +Married, spouse absent | ++ | NaN | +NaN | +NaN | +NaN | +NaN | +NaN | +NaN | +NaN | +NaN | +NaN | +... | +NaN | +NaN | +NaN | +NaN | +NaN | +NaN | +NaN | +NaN | +NaN | +NaN | +
| Separated | +NaN | +NaN | +NaN | +NaN | +NaN | +NaN | +NaN | +NaN | +NaN | +NaN | +... | +NaN | +NaN | +NaN | +NaN | +NaN | +NaN | +NaN | +NaN | +NaN | +NaN | +||||
| Other | +NaN | +NaN | +NaN | +NaN | +NaN | +NaN | +NaN | +NaN | +NaN | +NaN | +... | +NaN | +NaN | +NaN | +NaN | +NaN | +NaN | +NaN | +NaN | +NaN | +NaN | +||||
| Widowed | ++ | + | NaN | +NaN | +NaN | +NaN | +NaN | +NaN | +NaN | +NaN | +NaN | +NaN | +... | +NaN | +NaN | +NaN | +NaN | +NaN | +NaN | +NaN | +NaN | +NaN | +NaN | +||
| Divorced | ++ | + | NaN | +NaN | +NaN | +NaN | +NaN | +NaN | +NaN | +NaN | +NaN | +NaN | +... | +NaN | +NaN | +NaN | +NaN | +NaN | +NaN | +NaN | +NaN | +NaN | +NaN | +||
192 rows × 1081 columns
+Save the long form table as csv with schema and resource files.¶
+Typically we will store data in their long format. CensusAPI.save() method saves a long form table with schema and resource file.
+b05006_2023.save('./temp_data')
+2026-01-06 15:59:57,562 | INFO | morpc.census.api.CensusAPI.census-acs-acs5-2023-county-tract-region15-b05006.save: Saving data to ./temp_data... +2026-01-06 15:59:57,563 | INFO | morpc.census.api.CensusAPI.census-acs-acs5-2023-county-tract-region15-b05006.save: Writing data to ./temp_data/census-acs-acs5-2023-county-tract-region15-b05006.long.csv. +2026-01-06 15:59:57,563 | INFO | morpc.census.api.CensusAPI.census-acs-acs5-2023-county-tract-region15-b05006.save: Writing data to ./temp_data/census-acs-acs5-2023-county-tract-region15-b05006.long.csv. +2026-01-06 15:59:57,818 | INFO | morpc.census.api.CensusAPI.census-acs-acs5-2023-county-tract-region15-b05006.save: Writing schema to ./temp_data/census-acs-acs5-2023-county-tract-region15-b05006.schema.yaml. +2026-01-06 15:59:58,077 | INFO | morpc.census.api.CensusAPI.census-acs-acs5-2023-county-tract-region15-b05006.define_schema: Defining schema for B05006 for acs/acs5-year survey in 2023... +2026-01-06 15:59:58,078 | INFO | morpc.census.api.CensusAPI.census-acs-acs5-2023-county-tract-region15-b05006.define_schema: Adding fields for value columns... +2026-01-06 15:59:59,468 | INFO | morpc.census.api.CensusAPI.census-acs-acs5-2023-county-tract-region15-b05006.define_schema: Schema is valid. +2026-01-06 15:59:59,492 | INFO | morpc.census.api.CensusAPI.census-acs-acs5-2023-county-tract-region15-b05006.save: Creating resource for census-acs-acs5-2023-county-tract-region15-b05006... +2026-01-06 15:59:59,493 | INFO | morpc.census.api.CensusAPI.census-acs-acs5-2023-county-tract-region15-b05006.create_resource: Defining resource for census-acs-acs5-2023-county-tract-region15-b05006... +2026-01-06 15:59:59,494 | WARNING | morpc.frictionless.frictionless.create_resource: You specified a path for the resource file, however writeResource is not set to True. Resource file will not be written to disk. +2026-01-06 15:59:59,526 | INFO | morpc.census.api.CensusAPI.census-acs-acs5-2023-county-tract-region15-b05006.save: Writing resource to ./temp_data/census-acs-acs5-2023-county-tract-region15-b05006.resource.yaml. +2026-01-06 15:59:59,534 | INFO | morpc.census.api.CensusAPI.census-acs-acs5-2023-county-tract-region15-b05006.save: Validating resource at ./temp_data/census-acs-acs5-2023-county-tract-region15-b05006.resource.yaml. +2026-01-06 15:59:59,534 | INFO | morpc.frictionless.frictionless.validate_resource: Validating resource on disk including data and schema (if applicable). This may take some time. +2026-01-06 16:00:01,396 | INFO | morpc.frictionless.frictionless.validate_resource: Resource is valid ++
import os
+
+print(b05006_2023.FILENAME)
+
+os.path.exists(f'./temp_data/{b05006_2023.FILENAME}')
+census-acs-acs5-2023-county-tract-region15-b05006.long.csv ++
True+
(DEPRECIATED) Custom API calls¶
+Getting all available datasets in the api.¶
+MORPC works regularly with census data, including but not limited to ACS 5 and 1-year, Decennial Census, PEP, and geographies. The following module is useful for gathering and organizing census data for processes in various workflow. Those workflows are linked when appropriate.
+API functions and variables¶
+api_get() is a low-level wrapper for Census API requests that returns the results as a pandas dataframe. If necessary, it splits the request into several smaller requests to bypass the 50-variable limit imposed by the API.
+The resulting dataframe is indexed by GEOID (regardless of whether it was requested) and omits other fields that are not requested but which are returned automatically with each API request (e.g. "state", "county")
+url = 'https://api.census.gov/data/2022/acs/acs1'
+params = {
+ "get": "GEO_ID,NAME,B01001_001E",
+ "for": "county:049,041",
+ "in": "state:39"
+}
+from morpc.census.api import get
+api = get(url, params)
+api
+Geography tools¶
+from morpc.census import geos
+geos.SCOPES['region15']
+geos.fetch_geos_from_geoids(['0500000US39049'], '2023', 'ACS')
+from morpc.census.api import geo_params_from_scope_scale
+from morpc.census.geos import geoids_from_pseudo, fetch_geos_from_geoids
+
+fetch_geos_from_geoids(geoids_from_pseudo(geo_params_from_scope_scale('region15', 'block group').values()), '2023', 'ACS')
+
+# TODO: Split geoid list into sumlevels and then chucks to avoid to large of requests. Figure out how to handle this in the rest_api module maybe.
+