一个轻便灵活的熊猫数据结构验证包。

pandera的Python项目详细描述


潘德拉

一个灵活且有表现力的pandas验证库。


Build StatusPyPI version shields.ioPyPI licenseProject Status: Active – The project has reached a stable, usable state and is being actively developed.Documentation StatuscodecovPyPI pyversions

为什么?

pandas数据结构隐藏了大量信息,并且显式地 在生产关键或可复制的研究中在运行时验证它们 设置是个好主意。pandera允许用户:

  1. 检查DataFrame中列的类型和属性或 一个Series
  2. 执行更复杂的统计验证,如假设检验。
  3. 与现有的数据分析/处理流水线无缝集成 通过函数装饰器。

^ }提供了一个灵活的、有表现力的API,用于执行数据验证 关于整齐(长形)和宽数据,使数据处理管道更多 可读性和健壮性。

文档

官方文档存放在readthedocs上:https://pandera.readthedocs.io

安装

使用pip:

pip install pandera

使用conda:

conda install -c cosmicbboy pandera

示例用法

DataFrameSchema

importpandasaspdfrompanderaimportColumn,DataFrameSchema,Float,Int,String,Check# validate columnsschema=DataFrameSchema({# the check function expects a series argument and should output a boolean# or a boolean Series."column1":Column(Int,Check(lambdas:s<=10)),"column2":Column(Float,Check(lambdas:s<-1.2)),# you can provide a list of validators"column3":Column(String,[Check(lambdas:s.str.startswith("value_")),Check(lambdas:s.str.split("_",expand=True).shape[1]==2)]),})# alternatively, you can pass strings representing the legal pandas datatypes:# http://pandas.pydata.org/pandas-docs/stable/basics.html#dtypesschema=DataFrameSchema({"column1":Column("int64",Check(lambdas:s<=10)),...})df=pd.DataFrame({"column1":[1,4,0,10,9],"column2":[-1.3,-1.4,-2.9,-10.1,-20.4],"column3":["value_1","value_2","value_3","value_2","value_1"]})validated_df=schema.validate(df)print(validated_df)#     column1  column2  column3#  0        1     -1.3  value_1#  1        4     -1.4  value_2#  2        0     -2.9  value_3#  3       10    -10.1  value_2#  4        9    -20.4  value_1

测试

pip install pytest
pytest tests

对pandera的贡献GitHub contributors

欢迎所有贡献、错误报告、错误修复、文档改进、增强和想法。

关于如何贡献的详细概述可以在github上的contributing guide中找到。

问题

转到here提交功能 请求或错误修复。

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

推荐PyPI第三方库


热门话题
java如何在Android Wifi中筛选相同的SSID?   Java中重写接口中异常处理的泛型   java“无效转义序列(有效的是\b\t\n\f\r\”\“\”\)”语法错误   使用JNDI的java NameReadyBoundException   java如何在这个程序上执行算法   java为什么我的应用程序在调试时崩溃而应用程序停止?   Java:while循环未检测到中断条件,但如果块检测到   java如何快速使用jfreechart创建的折线图   java将输入放入JSTL会话变量,以便稍后在屏幕上显示   java在spring boot中加载外部JAR   java Apache NiFi无法使用ojdbc6连接到Oracle 12c。jar或ojdbc8。罐子   java解释StringToWordVector()Weka的输出   java charAt()找不到符号   使用mpjexpress的java阅读控制台输入