根据元数据模式验证数据集的python包

data-linter的Python项目详细描述


数据线

根据定义为here的元数据模式验证数据集的python包。

它执行以下检查:

  • 列是正确的数据类型吗(或者在诸如csv之类的非类型化数据格式的情况下,可以使用pd.Series.astype无误地转换它们)
  • 列名:
    • 列的名称是否正确?
    • 它们是否与元数据中指定的顺序相同
    • 有没有缺栏?
  • 如果元数据中提供了正则表达式pattern,那么实际数据是否始终符合pattern
  • 如果元数据中提供了enum,那么实际数据是否只包含enum
  • 中的值?
  • 在元数据中将nullable设置为false的地方,数据中是否真的没有空值?

该包还提供了impose_metadata_types_on_pd_df的功能,使用户可以安全地将pandas数据帧转换为元数据中指定的数据类型。如果您有一个非类型化的数据文件,比如csv,并且希望确保它与元数据一致,那么这将非常有用。

用法

有关如何使用包的详细信息,请参见demo repo。这包括一个交互式教程,您可以在Web浏览器中运行。

下面是一个非常基本的示例

import pandas as pd
import json

from data_linter.lint import Linter

def read_json_from_path(path):
    with open(path) as f:
        return_json = json.load(f)
    return return_json

meta = read_json_from_path("tests/meta/test_meta_cols_valid.json")
df = pd.read_parquet("tests/data/test_parquet_data_valid.parquet")
l = Linter(df, meta)
l.check_all()
l.markdown_report()

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

推荐PyPI第三方库


热门话题
java在TextView中对齐部分文本   带有iText和eTPKCS11的java PKCS#11签名。dll&SunPKCS11提供程序   java Intellij Idea找不到jar   java Chrome/Firefox和Jetty HTTPS   java我无法打包找不到的JavaFX应用程序模块   多线程Java:排序从异步任务检索的结果   java客户端/服务器socket不能与外部连接一起工作   java如何在单击“下一步”按钮时获取其他详细信息?   java组织。springframework。网状物客户RestTemplate应声明为@Bean,而plain@Autowired抛出错误   java如何绘制javax。摆动将ImageIcon转换为JavaFX。fxml呈现用户界面?   使用for循环的Java跟踪   java如何编码字符串以显示彩色文本(基于字符串中的前缀)   Java保存/打开文件对象   基于java复选框的搜索:使用尽可能多的“”动态生成准备好的语句作为选中复选框的计数   java为什么crawler4j随机挂起?