用于维护不断发展的表格数据集的库
histore的Python项目详细描述
History Store(HISTORE)是一个pyton包,用于维护不断变化的数据集的快照。此包提供了在XML Archiver (XArch)中实现的核心功能的实现。该包是一个轻量级实现,用于维护表示为pandas数据帧的数据集快照。在
HISTORE基于一种嵌套的合并方法,该方法在紧凑的归档文件[Buneman, Khanna, Tajima, Tan. 2004]中高效地存储多个数据集快照。该库允许用户创建新的归档文件,将新的数据集快照合并到现有的归档文件中,并从归档文件中检索数据集快照。在
示例
HISTORE在存档中维护数据集版本(快照)。为每个数据集创建一个单独的存档。该包目前提供两种不同类型的存档:一种是在主内存中维护所有数据集快照的易失性归档,另一种是将数据集快照写入磁盘的持久性归档。在
使用Volatile Archive
从创建一个新的存档开始。在创建时,可以指定主键(列名列表)。如果给定了一个promary key,那么当数据集快照合并到归档文件中时,key属性中的值将用作行键。如果没有指定主键,则在合并阶段使用数据帧的行索引来匹配行。在
^{pr2}$将前两个数据集版本添加到存档:
importpandasaspd# First versiondf=pd.DataFrame(data=[['Alice',32],['Bob',45],['Claire',27],['Dave',23]],columns=['Name','Age'])archive.commit(df,description='First snapshot')# Second version: Change age for Alice and Bobdf=pd.DataFrame(data=[['Alice',33],['Bob',44],['Claire',27],['Dave',23]],columns=['Name','Age'])archive.commit(df,description='Alice is 33 and Bob 44')
列出有关存档中所有快照的信息。这还显示了如何使用checkout方法检索特定的数据集版本:
# Print all data frame versionsforsinarchive.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',primary_key=['Name'])
持久存档在两个文件中维护数据集快照,这两个文件是在basedir参数给定的目录中创建的。在
有关更多示例,请参阅examples folder中的笔记本。在
- 项目
标签: