基于JSON Table Schema描述符生成Pandas数据框,加载数据并提取数据。
项目描述
基于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 查看哈希值)
构建分布
关闭
哈希值 for jsontableschema_pandas-0.5.0-py2.py3-none-any.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 32895c32d83d644ca017b5d376911a9ff018b00f550fdd70d967e34da4c29a25 |
|
MD5 | 66a29c27f4a7134b11c63b03a4925fca |
|
BLAKE2b-256 | 9204808b627c8d314bee0e45a296e8810328d5f7bc1449a77c63f6e79812ed59 |