夸利亚雷拉的退役生活,告别绿茵场后的新篇章!

tmyb

最近折腾了一下夸利亚雷拉,别误会,不是真人,是Python里的一个库,用来做数据质量检查的。之前一直用Pandas做数据清洗,但数据量一大,跑起来就慢,而且规则一多,代码也乱。听说夸利亚雷拉能解决这些问题,就想着试试水。

夸利亚雷拉的退役生活,告别绿茵场后的新篇章!

第一步:安装。这没啥好说的,直接pip install quallearella搞定。装完之后,简单看了下官方文档,发现它主要用YAML文件来定义检查规则,感觉挺清晰的。

第二步:写规则。我拿了一个CSV文件做测试,里面有一些用户信息,包括姓名、年龄、邮箱啥的。我的目标是检查:

  • 年龄是不是在18到60之间。
  • 邮箱格式是不是正确。
  • 姓名是不是为空。

于是我就开始写YAML文件。一开始有点懵,不知道怎么下手,就照着文档里的例子改。改了半天,终于搞出来一个能用的:


fields:

age:

checks:

- type: range

min: 18

max: 60

email:

checks:

- type: regex

pattern: '^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$'

name:

checks:

- type: not_null

这个YAML文件定义了三个字段的检查规则。age字段检查范围,email字段检查正则,name字段检查非空。看起来还挺简单的,对?

第三步:跑检查。有了规则文件,就可以用夸利亚雷拉来跑检查了。代码也很简单:


import quallearella as q

data = *_csv('user_*')

rules = '*'

results = *_data(data, rules)

print(results)

这段代码先读取CSV文件,然后读取YAML规则文件,调用validate_data函数进行检查。运行之后,就能看到检查结果了。结果会告诉你哪些数据不符合规则,以及不符合的原因。

第四步:处理结果。检查结果出来了,接下来就要处理这些不符合规则的数据。夸利亚雷拉提供了很多选项,比如可以把不符合规则的数据过滤掉,或者把它们标记出来。我选择把它们标记出来,然后导出到一个新的CSV文件里,方便后续处理。

这回试用夸利亚雷拉,感觉还不错。它用YAML文件来定义检查规则,代码清晰易懂。而且它能处理大量数据,速度也很快。以后再做数据质量检查,就用它了。夸利亚雷拉还有很多高级功能,比如自定义检查规则、数据转换等等,以后有时间再慢慢研究。

踩坑记录:

  • YAML文件格式一定要正确,不然会报错。
  • 正则要写对,不然会漏掉一些不符合规则的数据。
  • 处理结果的时候,要注意数据类型,不然会出错。

希望这回分享对你有帮助!下次再见!