从 Pandas 到 Polars 十九:Polars 中的布尔过滤器

浏览一些Kaggle竞赛,你会看到布尔掩码是过滤Pandas数据框的常见方式。

然而,阅读Polars的文档时,你会发现它们建议你不要使用这种方法。相反,它们推荐使用.filter方法。

为什么会这样呢?

我认为部分原因是为了性能。但是,在处理一千万行数据集时,布尔掩码和.filter查询给出了类似的结果(而且两者都比Pandas快得多)。

使用 .filter 的真正原因是为了利用延迟模式(lazy mode)查询优化(query optimization)

在 Pandas 中,你需要在应用过滤器之前将整个数据框读入内存。

而在 Polars 的延迟模式下,你可以将过滤器构建到完整的查询中——包括从 CSV 中读取哪些数据。

在这种情况下,这导致 Polars 的速度比 Pandas 快 14 倍。

总的来说,Polars推荐使用.filter而不是布尔掩码,因为它有助于将更多内容推送到查询优化器中。

如果你正在尝试使用Polars但没有使用这些方法,那么不妨试一试并比较你现有代码的执行时间——我想你会有惊喜的!

  • 6
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值