根据元数据模式验证数据集的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()