Skip to main content

用于维护不断发展的表格数据集的库

项目描述

https://img.shields.io/pypi/pyversions/histore.svg https://badge.fury.io/py/histore.svg https://github.com/heikomuller/histore/workflows/build/badge.svg https://codecov.io/gh/heikomuller/histore/branch/master/graph/badge.svg https://img.shields.io/badge/License-BSD-green.svg <figure class="align-center"> 历史商店 </figure>

History Store (HISTORE) 是一个 Pyhton 包,用于维护不断变化的数据集的快照。这个包提供了在XML Archiver (XArch)中实现的核心功能的实现。该包是一个轻量级实现,旨在维护表示为 pandas 数据帧的数据集快照。

HISTORE基于嵌套合并方法,可有效地将多个数据集快照存储在一个紧凑的存档中[Buneman, Khanna, Tajima, Tan. 2004]。该库允许创建新档案,将新数据集快照合并到现有档案中,以及从档案中检索数据集快照。

安装

使用pipPython 包索引 (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 查看哈希

已上传 source

内置分布

histore-0.4.1-py3-none-any.whl (109.8 kB 查看哈希

已上传 py3