数据科学家如何在 Python 中使用简单数据契约

使用 Pandera 进行简单的开源验证,阻止您的管道在周五下午崩溃。如何为数据科学家使用 Python 中的简单数据契约一文首先出现在 Towards Data Science 上。

来源:走向数据科学

说实话:我们都经历过这样的情况。

现在是星期五下午。您已经训练了模型、验证了它并部署了推理管道。指标看起来是绿色的。周末你关闭笔记本电脑,享受假期。

周一早上,您上班时会收到“管道失败”消息。这是怎么回事?当您部署推理管道时,一切都很完美。

“管道失败”

事实上,问题可能有很多方面。也许上游工程团队将 user_id 列从整数更改为字符串。或者价格列可能突然包含负数。或者我个人最喜欢的:列名称从created_at更改为createdAt(驼峰式命名法再次出现!)。

用户 ID 价格 创建于 创建于

业界称之为模式漂移。我称之为头痛。

架构漂移

最近,人们谈论了很多关于数据契约的话题。通常,这涉及向您出售昂贵的 SaaS 平台或复杂的微服务架构。但如果您只是一名数据科学家或工程师,试图防止 Python 管道爆炸,那么您不一定需要企业膨胀。

数据合约

工具:Pandera

让我们了解如何使用 Pandera 库在 Python 中创建一个简单的数据契约。它是一个开源 Python 库,允许您将模式定义为类对象。它感觉与 Pydantic 非常相似(如果您使用过 FastAPI),但它是专门为 DataFrames 构建的。

潘德拉

首先,您只需使用 pip 安装 pandera:

潘德拉
pip 安装 pandera

现实生活中的示例:营销线索源

让我们看一个经典场景。您正在从第三方供应商获取营销线索的 CSV 文件。

这是我们期望的数据:

期望
    id:一个整数(必须是唯一的)。email:一个字符串(实际上必须看起来像电子邮件)。signup_date:一个有效的日期时间对象。lead_score:0.0 到 1.0 之间的浮点数。
  • id:整数(必须是唯一的)。
  • id
  • email:一个字符串(实际上必须看起来像电子邮件)。
  • 电子邮件 如果 第一个