使用各州获取美国人口普查区

get US Census regions using states

美国人口普查将每个州指定为 region(即纽约位于东北部)。我有一个州数据集,我想为其查找各州对应的美国人口普查区域。

us module was my first attempt but it doesn't contain the region (to my awareness). The census 模块向美国人口普查提供 API,但我没有找到查询该地区的方法。除了必须手动构建字典之外,有谁知道一种方便的方法吗?

数据样本:

df = pd.DataFrame({'state':['Alabama','Georgia','California','Tennessee',
 'Florida','Illinois','Arizona','New York','Maryland','Virginia','New Jersey','Kansas',
 'District of Columbia','Texas','Missouri','North Carolina','Ohio','Massachusetts',
 'Wisconsin','Pennsylvania','Alaska','Michigan',
 'Arkansas']})
df.loc[:,'region'] = np.nan

有人在 github 上做了一个很好的 table。您可以将其复制并粘贴为数据框

pd.read_clipboard()

假设 link 是稳定的(当然它可能不是)你可以直接读取 csv:

pd.read_csv('https://raw.githubusercontent.com/cphalpert/census-regions/master/us%20census%20bureau%20regions%20and%20divisions.csv')

郑重声明,如果您需要回马口获取这些信息,您可以从人口普查局的 TIGER GIS 文件中获取它们。

安装 geopandas 以便能够轻松加载地理 shapefile,下载状态文件,无论什么 vintage,然后这样做:

states = gpd.read_file('/Users/akselo/downloads/tl_2017_us_state.shp')
states.set_index(['NAME'])[['REGION','DIVISION']].head()

REGION DIVISION West Virginia 3 5 Florida 3 5 Illinois 2 3 Minnesota 2 4 Maryland 3 5