跳转到主要内容

探索并从人口普查API下载数据

项目描述

https://img.shields.io/static/v1.svg?label=documentation&message=latest&color=blueviolet https://github.com/cenpy-devs/cenpy/workflows/.github/workflows/build.yml/badge.svg https://img.shields.io/pypi/dm/cenpy.svg https://zenodo.org/badge/36956226.svg https://img.shields.io/badge/Census%20Slack--lightgrey.svg

一个探索和查询美国人口普查API的接口,并返回Pandas Dataframes。此包旨在进行探索性数据分析,并从类似sqlalchemy的接口和acs.R中获得灵感。通过为应用开发人员和只想快速且轻松获取数据的用户分别提供API,cenpy应该满足大多数旨在从Python获取美国人口普查数据的用户的需求。

有关使用Cenpy快速获取数据的示例,请参阅我们的网站

安装

Cenpy 最容易通过 conda 安装,它是科学 Python 中常用的包管理器。首先,安装 Anaconda

然后,cenpyconda-forge 通道可用

conda install -c conda-forge cenpy

或者,如果您已安装 geopandasrtree,也可以通过 pip(Python 包管理器)安装 cenpy

pip install cenpy

对于用户

大多数情况下,用户希望有一个简单直观的接口访问美国人口普查局的主要产品:2010 年人口普查和美国社区调查。幸运的是,cenpy 提供了直接访问这些产品的接口。例如,可以使用以下方法访问美国社区调查的最新 5 年估计数据:

import cenpy
acs = cenpy.products.ACS()
acs.from_place('Chicago, IL')

同样,可以使用以下方法访问十年一次的人口普查:

import cenpy
decennial = cenpy.products.Decennial2010()
decennial.from_place('Seattle, WA')

有关产品 API 的工作方式的更多信息,请参阅相关主题笔记本

对于开发者

API 参考信息可在 cenpy-devs.github.io/cenpy 获得。通常,products 是大多数最终用户希望与之交互的内容。如果您需要更细粒度地访问美国人口普查局的 API,您可能会想要基于 APIConnectionTigerConnection 进行构建。

在较高层次上,APIConnection 对象连接到 https://api.census.gov/data.json 上暴露的美国人口普查局的 API 资源。其方法和相关实用工具在 cenpy.remote 中定义。 TigerConnection 包装了在 http://tigerweb.geo.census.gov/arcgis/rest/services/TIGERweb 上公开的一个地图服务,并在 cenpy.tiger 中定义。每个 TigerConnection 由多个 ESRILayer 对象组成,这些对象包装了 ESRI 地图服务中的单个地理区域。例如,一个 ACS TigerConnection 可能在其 layer 属性中包含州、县和街区 ESRILayer 对象。

要使用面向开发者的 API,您可以创建一个使用其短代码的 APIConnection

cxn = cenpy.remote.APIConnection('DECENNIALSF12010')

检查所需的变量和地理支持情况

cxn.variables #is a pandas dataframe containing query-able vbls
cxn.geographies #is a pandas dataframe containing query-able geographies

请注意,一些地理区域(如街区)在查询工作之前需要您指定较高层级的更高要求。

查询函数的结构对应于人口普查 API 中的 getforin 的使用。查询函数的主要参数是 colsgeo_unitgeo_filter,它们分别对应那些谓词。如果需要更多的谓词进行搜索,它们可以作为查询末尾的关键字参数添加。

cols 参数必须是检索数据集的列的列表。然后,您必须指定 geo_unitgeo_filter,它们提供聚合单元应该是 什么 以及单元应该在 哪里geo_unit 必须是一个包含分析单元和标识符的字符串。例如,如果您想指定亚利桑那州的所有县,您指定 geo_unit = 'county:*'geo_filter = {'state':'04'}

要创建一个 TigerConnection

cxn = cenpy.tiger.TigerConnection('tigerWMS_ACS2013')

然后,所有的 ESRILayer 对象都包含在 layer 属性中

cxn.layers

“cxn.query”方法将相关查询传递到选定的层,并返回一个数据框。实际的查询结构类似于,遵循ESRI文档。

贡献

做出贡献

  1. 使用!每位用户都是自然意义上的贡献者。如果您愿意,提交一个issue

    • 告诉我们您如何使用

    • 发布一个代码片段,一个jupyter笔记本,或您能提供的任何内容。

    • 告诉我们您的博客文章!

    • 询问有关如何从Python中使用人口普查数据的问题,我们会尽力帮助。

  2. 如果您使用时出现错误,提交一个issue告诉我们

    • 您想要的功能不在中,或在其他包中工作不正常

    • 中的哪些功能不符合您的预期

    • 哪些文档表述不正确或令人困惑

  3. Fork 的github仓库,进行更改,并给我们发送一个pull request

待办事项

  • 中添加县商业统计产品

项目详情


下载文件

下载适用于您平台文件。如果您不确定选择哪个,了解更多关于安装包的信息。

源分发

cenpy-1.0.1.tar.gz (30.8 kB 查看哈希值)

上传时间

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面