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

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 格式的数据集。

以上是关于使用州获取美国人口普查区域的主要内容,如果未能解决你的问题,请参考以下文章

特定的纬度/经度落在啥“道路”上?美国人口普查形状文件

比特币教主成叛徒 | 中国发布第七次人口普查数据 | 美国通胀指标创记录

一计算机原理前世今生

使用 D3.js 仅渲染 topojson 地图的一部分

如何获取带有区域和子区域的地图

熊猫:无法进行位置索引