根据JSON Table Schema描述符生成Pandas数据框,加载和提取数据。
项目描述
tableschema-pandas-py
生成和加载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接口(请参阅链接中的完整文档)
此驱动程序提供了一个额外的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
中配置的 pytest
、coverage
和 mock
软件包。这些软件包仅在 tox
环境中可用。
变更日志
这里只描述了破坏性和最重要的更改。所有发布版本的完整变更日志和文档可以在格式良好的 提交历史记录 中找到。
v1.1
- 添加了对复合主键的支持(加载到 Pandas)
v1.0
- 初始驱动程序实现
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于 安装软件包 的信息。
源分布
构建分布
散列 for tableschema_pandas-1.1.0-py2.py3-none-any.whl
算法 | 散列摘要 | |
---|---|---|
SHA256 | e053c72be8d821331595de1cf08fedcf23aebdc832364d60bc98043fe0ef7cb7 |
|
MD5 | ce1f37691690d37fd151d5b0af7b224f |
|
BLAKE2b-256 | 3d1051e855b1a92a9d0bb23f349ba44df0685aeb7581df23f148e034bb05f1ae |