Census Data Tools¶

Initiate and configure the logger. This will save the outputs of the log to the specified file.

In [1]:
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:

  1. The "survey/table" to get the data from.
  2. The year of the data.
  3. The group of variables that you want to call.
  4. The geographic "scope" of the data you want to get the data for.

Optionally:

  1. The geographic scale of the data you want to get the data for.
  2. A subset of the variables in the chosen group.
In [2]:
# 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.

In [3]:
from morpc.census.api import IMPLEMENTED_ENDPOINTS

IMPLEMENTED_ENDPOINTS
Out[3]:
['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

In [4]:
from morpc.census.api import ALL_AVAIL_ENDPOINTS 

ALL_AVAIL_ENDPOINTS['acs/acs5']
Out[4]:
[2010,
 2011,
 2012,
 2013,
 2014,
 2015,
 2016,
 2017,
 2018,
 2009,
 2019,
 2020,
 2021,
 2022,
 2023]

3. See available variable groups for a survey/table.¶

In [5]:
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.
Out[5]:
'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

In [6]:
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.

In [7]:
from morpc.census.geos import PSEUDOS

PSEUDOS

## All available scale levels if the sumlevel of the "scope" paramter is Counties (050)

PSEUDOS['050']
Out[7]:
['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()

In [8]:
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.
Out[8]:
{'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.

In [9]:
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

In [10]:
b05006_2023.DATA
Out[10]:
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.

In [11]:
b05006_2023.LONG
Out[11]:
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.

In [12]:
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.
In [13]:
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.
Out[13]:
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)

In [14]:
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.
Out[14]:
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.

In [15]:
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.
In [22]:
b05006_2018.LONG
Out[22]:
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

In [23]:
import pandas as pd

long = pd.concat([b05006_2023.LONG, b05006_2018.LONG])
In [24]:
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.
In [26]:
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.
Out[26]:
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

In [18]:
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.
In [19]:
percent
Out[19]:
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.

In [28]:
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
In [30]:
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
Out[30]:
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")

In [ ]:
url = 'https://api.census.gov/data/2022/acs/acs1'
params = {
    "get": "GEO_ID,NAME,B01001_001E",
    "for": "county:049,041",
    "in": "state:39"
}
In [ ]:
from morpc.census.api import get
api = get(url, params)
In [ ]:
api

Geography tools¶

In [ ]:
from morpc.census import geos
In [ ]:
geos.SCOPES['region15']
In [ ]:
geos.fetch_geos_from_geoids(['0500000US39049'], '2023', 'ACS')
In [ ]:
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.