使用州获取美国人口普查区域
Posted
技术标签:
【中文标题】使用州获取美国人口普查区域【英文标题】:get US Census regions using states 【发布时间】:2017-08-07 21:47:27 【问题描述】:美国人口普查将每个州指定为region(即纽约位于东北部)。我有一个州数据集,我想查找这些州对应的美国人口普查区域。
us
模块是我的第一次尝试,但它不包含该区域(据我所知)。 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
【问题讨论】:
【参考方案1】:假设链接是稳定的(当然可能不是),您可以通过直接读取 csv 来解决:
pd.read_csv('https://raw.githubusercontent.com/cphalpert/census-regions/master/us%20census%20bureau%20regions%20and%20divisions.csv')
作为记录,如果您需要回到马口中获取这些信息,您可以从人口普查局的 TIGER GIS 文件中获取它们。
安装geopandas
以便能够轻松加载地理形状文件,下载状态文件,无论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
【讨论】:
+1 用于提及geopandas
并建议使用 TIGER GIS 文件。我都不知道,这是一个方便的解决方案。谢谢!【参考方案2】:
有人在 github 上做了一个很好的table。您可以复制并粘贴为数据框
pd.read_clipboard()
【讨论】:
pd.read_clipboard()
并不总是稳定的(有时我的笔记本会崩溃)。为避免从剪贴板中读取数据,只需单击“原始”按钮即可下载 csv 格式的数据集。以上是关于使用州获取美国人口普查区域的主要内容,如果未能解决你的问题,请参考以下文章