跳转到主要内容

基于JSON Table Schema描述符生成Pandas数据框,加载数据并提取数据。

项目描述

Travis
Coveralls
PyPi
SemVer
Gitter

基于JSON Table Schema描述符生成和加载数据框。

版本v0.2包含破坏性变更

  • 移除了Storage(prefix=)参数(是一个占位符)

  • Storage(tables=)重命名为Storage(dataframes=)

  • Storage.tables重命名为Storage.buckets

  • Storage.read改为读取到内存中

  • 添加了Storage.iter以逐行生成

入门指南

安装

$ pip install datapackage
$ pip install jsontableschema-pandas

示例

您可以通过简单地使用 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

存储

该包实现了 Tabular Storage 接口。

我们可以这样获取存储

>>> from jsontableschema_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

如您所见,后续的写入操作仅将新数据追加到现有数据之上。

API 参考

快照

https://github.com/frictionlessdata/jsontableschema-py#snapshot

详细

贡献

请阅读贡献指南

如何贡献

谢谢!

项目详情


下载文件

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

源分布

jsontableschema-pandas-0.5.0.tar.gz (9.6 kB 查看哈希值)

上传时间

构建分布

jsontableschema_pandas-0.5.0-py2.py3-none-any.whl (9.1 kB 查看哈希值)

上传时间 Python 2 Python 3

支持者