具有多索引和大容量操作的数据类容器

dataclassframe的Python项目详细描述


PyPIPythonBuild StatusDocumentation

数据类帧

具有多索引和批量操作的数据类容器。 提供数据类的类型化优点和人体工程学,同时具有Pandas dataframes的效率。在

容器基于data-oriented design,通过优化存储数据的内存布局,提供快速 大容量操作和较小的内存占用用于大型集合。 批量操作是通过Pandas实现的,Pandas有一套丰富的用于数值和字符串的矢量化方法 数据类型。在

多重索引提供了使用多个字段作为索引记录的键的能力。 这适用于双向和反向字典键。在

DataClassFrame为生产代码提供了良好的人机工程学,因为列是不可变的 列/数据类型由dataclass定义良好。 这使得用户更容易理解大型项目中数据的“形状”,并在必要时进行重构。在

安装

使用pip/PyPi获取最新版本

pip install dataclassframe

特征比较

ContainerPositional indexingKey indexingMulti-key indexingData-oriented designColumn-wise opperationsType hintsUse in prod
DataClassFrame
List
Dictionary
MIDict
Pandas DataFrame

以身作则

数据类的容器数据类型。。。在

^{pr2}$

它就像一个有多个索引的有序字典。。。在

# Obtain record `ExampleDC('b', 2)`row_idx=dcf.iat[1]# Using positional indexrow_f1=dcf.at['b']# Using index of `field1`row_f2=dcf.at[:,2]# Using index of `field2`assertrow_idx==row_f1==row_f2

对列执行批量操作。。在

assertdcf.cols.field2.sum()==6

可以很好地与python3类型提示配合使用。。。在

dcf:DataClassFrame[ExampleDC]dcf.iat[1]:ExampleDC

设计

众所周知,DataClassFrames在幕后使用Pandas DataFrames来存储数据。 数据在可能的情况下被转换成Pandas系列,而Pandas系列又使用Numpy数组。当用户访问一个记录时,数据被转换回初始化时提供的数据类。在

与使用简单的数据类列表或类似的方法(如更好的内存)相比,Pandas提供了许多优势 占地面积和快速矢量化操作。然而,在生产代码中直接使用Pandas数据帧是considered by the author and others as an anti-pattern。 特别是由于数据帧是按列可变的,因此很难在代码时确定哪些列 数据帧包含即其形状。它也不提供任何类型的暗示好处。在

托多

  • []用于访问数据和设置数据的切片和dataclassframe视图
  • []追加和插入
  • []面向数据的Numpy字段设计

变更日志

本项目的所有显著变化都将记录在这里。在

格式基于Keep a Changelog 这个项目遵循Semantic Versioning。在

[0.1.0]-2020年10月22日

已添加

  • dataclassframe的初始版本

许可证

©乔希·克莱维,2020年。dataclassframe是在MIT许可下发布的。在

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

推荐PyPI第三方库


热门话题
无法在Java Android中比较字符串   java Month二月在下面的程序中被解析为'33'。如何修复?   用于在方法调用中显式指定泛型参数的Javasyntax   java 安卓。操作系统。NetworkOnMainThread尝试与jsoup 安卓连接时出现异常   java Spring引导找不到jsp视图   java如何访问注释中的属性值?   反射我可以使用isAssignableFrom检查C1是Java中C2的子类型吗?   java如何在selenium中从HTTP服务器传递图像URL   java导入失败。hibernate中的sql   Java中的“断开”while循环   java如何向Spark数据集添加映射列?   java应该在中部署消息驱动bean。耳文件?   java为何如此悲观。在springboot JPA中写入不起作用?   web服务如何在Java中高效地管理文件系统上的文件?   Java验证日期条目   java错误:在AWS RDS上找不到适合数据库的驱动程序   java如何将OBJ文件面定义传递给openGL