用于维护不断发展的表格数据集的库
项目描述
History Store (HISTORE) 是一个 Pyhton 包,用于维护不断变化的数据集的快照。这个包提供了在XML Archiver (XArch)中实现的核心功能的实现。该包是一个轻量级实现,旨在维护表示为 pandas 数据帧的数据集快照。
HISTORE基于嵌套合并方法,可有效地将多个数据集快照存储在一个紧凑的存档中[Buneman, Khanna, Tajima, Tan. 2004]。该库允许创建新档案,将新数据集快照合并到现有档案中,以及从档案中检索数据集快照。
安装
使用pip从 Python 包索引 (PyPI)安装histore:
pip install histore
例子
HISTORE在存档中维护数据集版本(快照)。为每个数据集创建一个单独的存档。该软件包目前提供两种不同类型的存档:在主内存中维护所有数据集快照的易失性存档和将数据集快照写入磁盘的持久存档。
使用易失存档的示例
首先创建一个新档案。对于每个存档,可以指定一个可选的主键(列名列表)。如果给定了主键,则在将数据集快照合并到存档中时,键属性中的值将用作行键。如果未指定主键,则在合并阶段使用数据框的行索引来匹配行。
对于具有主键的存档,在创建存档时需要提供初始数据集快照(或至少是数据集模式)。
# Create a new archive that merges snapshots
# based on a primary key attribute
import histore as hs
import pandas as pd
# First version
df = pd.DataFrame(
data=[['Alice', 32], ['Bob', 45], ['Claire', 27], ['Dave', 23]],
columns=['Name', 'Age']
)
archive = hs.Archive(doc=df, primary_key='Name', descriptor=hs.Descriptor('First snapshot'))
将前两个数据集版本添加到存档中:
# Second version: Change age for Alice and Bob
df = pd.DataFrame(
data=[['Alice', 33], ['Bob', 44], ['Claire', 27], ['Dave', 23]],
columns=['Name', 'Age']
)
archive.commit(df, descriptor=hs.Descriptor('Alice is 33 and Bob 44'))
列出有关存档中所有快照的信息。这也显示了如何使用 checkout 方法来检索特定的数据集版本:
# Print all data frame versions
for s in archive.snapshots():
df = archive.checkout(s.version)
print('({}) {}\n'.format(s.version, s.description))
print(df)
print()
结果应如下所示:
(0) First snapshot
Name Age
0 Alice 32
1 Bob 45
2 Claire 27
3 Dave 23
(1) Alice is 33 and Bob 44
Name Age
0 Alice 33
1 Bob 44
2 Claire 27
3 Dave 23
使用持久存档的示例
要创建维护磁盘上所有数据的持久存档,请使用PersistentArchive类:
archive = hs.PersistentArchive(basedir='path/to/archive/dir', create=True, doc=df, primary_key=['Name'])
持久存档在作为basedir参数给出的目录中创建的两个文件中维护数据集快照。
有关更多示例,请参阅示例文件夹中的笔记本。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。
源分布
histore-0.4.1.tar.gz
(76.5 kB
查看哈希)
内置分布
histore-0.4.1-py3-none-any.whl
(109.8 kB
查看哈希)