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

histore的Python项目详细描述


https://img.shields.io/pypi/pyversions/histore.svghttps://badge.fury.io/py/histore.svghttps://github.com/heikomuller/histore/workflows/build/badge.svghttps://codecov.io/gh/heikomuller/histore/branch/master/graph/badge.svghttps://img.shields.io/badge/License-BSD-green.svg
History Store

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

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

安装

使用pip,从Python Package Index (PyPI)安装histore,其中:

pip install histore

示例

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中的笔记本。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
JavaSWT树项目高度   java如何通过单击按钮向JFrame添加文本字段?   java keytool如何保护密钥?   java在Apache Camel中构建一个报告来测量事务时间   安卓为什么这个Java类的参数不能按预期工作?   java参数化JUnit中的测试方法,而不仅仅是整个类   java N级地图,需要把地图放在地图里面   屏幕右侧的java抽屉?   JAVA网MalformedURLException:解析xml时没有协议异常   java为什么调用时出现JSON异常。getJSONObject()?   socketJava服务器关闭代码   java如何为计算器生成命令行参数   java如何将活动意图传递给另一个类?   java Apache HttpClient临时错误:NoHttpResponseException   java JVM选项XX:UseFastEmptyMethods/XX:UseFastAccessorMethods   类Java构造函数问题   验证PDF和Excel文件类型的java模式   java循环菜单问题   java如何返回tar。Spring中通过http的gz文件   java使用NetBeans设置图像库