跳转到主要内容

根据JSON Table Schema描述符生成Pandas数据框,加载和提取数据。

项目描述

tableschema-pandas-py

Travis Coveralls PyPi Github Gitter

生成和加载Pandas数据框 Table Schema 描述符。

功能

  • 实现了 tableschema.Storage 接口

内容

入门指南

安装

本软件包使用语义版本控制。这意味着主要版本可能包含破坏性变更。强烈建议在您的 setup/requirements 文件中指定 package 版本范围,例如 package>=1.0,<2.0

$ pip install tableschema-pandas

示例

本说明中包含的代码示例需要Python 3.3+解释器。您可以在 示例 目录中看到更多示例。

您可以通过简单地使用 datapackage.push_datapackage 函数轻松地将资源加载为Pandas数据框。

>>> import datapackage

>>> data_url = 'http://data.okfn.org/data/core/country-list/datapackage.json'
>>> storage = datapackage.push_datapackage(data_url, 'pandas')

>>> storage.buckets
['data___data']

>>> type(storage['data___data'])
<class 'pandas.core.frame.DataFrame'>

>>> storage['data___data'].head()
             Name Code
0     Afghanistan   AF
1   Åland Islands   AX
2         Albania   AL
3         Algeria   DZ
4  American Samoa   AS

同样,您也可以将现有的数据框拉入数据包中。

>>> datapackage.pull_datapackage('/tmp/datapackage.json', 'country_list', 'pandas', tables={
...     'data': storage['data___data'],
... })
Storage

文档

本软件包的整个公共API在此处描述,并遵循语义版本控制规则。本说明之外的所有内容都是私有API,且在新版本中可能会发生变化,而无需任何通知。

存储

本软件包实现了Tabular Storage接口(请参阅链接中的完整文档)

Storage

此驱动程序提供了一个额外的API

Storage(dataframes=[])

  • dataframes (object[]) - 存储数据帧列表

我们可以这样获取存储

>>> from tableschema_pandas import Storage

>>> storage = Storage()

存储作为 Pandas 数据帧的容器。您可以使用 storage.create 方法在存储中定义新的数据帧

>>> storage.create('data', {
...     'primaryKey': 'id',
...     'fields': [
...         {'name': 'id', 'type': 'integer'},
...         {'name': 'comment', 'type': 'string'},
...     ]
... })

>>> storage.buckets
['data']

>>> storage['data'].shape
(0, 0)

使用 storage.write 将数据填充到数据帧中

>>> storage.write('data', [(1, 'a'), (2, 'b')])

>>> storage['data']
id comment
1        a
2        b

您还可以使用 tabulator 从外部数据文件填充数据帧。如您所见,后续写入只是简单地将在现有数据之上添加新的数据

>>> import tabulator

>>> with tabulator.Stream('data/comments.csv', headers=1) as stream:
...     storage.write('data', stream)

>>> storage['data']
id comment
1        a
2        b
1     good

贡献

项目遵循 Open Knowledge International 编码标准

推荐的入门方式是创建并激活项目虚拟环境。要将软件包和开发依赖项安装到活动环境中

$ make install

运行带有 linting 和 coverage 的测试

$ make test

对于 linting,使用在 pylama.ini 中配置的 pylama。在此阶段,它已经安装到您的环境中,并且可以像在文档中描述的那样单独使用,以获得更细粒度的控制 - https://pylama.readthedocs.io/en/latest/

例如,按错误类型排序结果

$ pylama --sort <path>

对于测试,使用在 tox.ini 中配置的 tox。它已经安装到您的环境中,并且可以像在文档中描述的那样单独使用,以获得更细粒度的控制 - https://testrun.org/tox/latest/

例如,以增加的详细程度检查针对 Python 2 环境的测试子集。所有位于 -- 之后的位置参数和选项都将传递给 py.test

tox -e py27 -- -v tests/<path>

在底层,tox 使用在 pytest.ini 中配置的 pytestcoveragemock 软件包。这些软件包仅在 tox 环境中可用。

变更日志

这里只描述了破坏性和最重要的更改。所有发布版本的完整变更日志和文档可以在格式良好的 提交历史记录 中找到。

v1.1

  • 添加了对复合主键的支持(加载到 Pandas)

v1.0

  • 初始驱动程序实现

项目详情


下载文件

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

源分布

tableschema-pandas-1.1.0.tar.gz (11.2 kB 查看散列)

上传时间

构建分布

tableschema_pandas-1.1.0-py2.py3-none-any.whl (10.8 kB 查看散列)

上传时间 Python 2 Python 3

由以下支持

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