Polars简明基础教程系列
文章平均质量分 91
在数据科学与大数据分析的广阔领域中,高效处理数据的能力是成功的关键。随着数据量的爆炸性增长,传统数据处理库如Pandas在某些场景下已难以满足性能需求。而Polars,作为一个新兴的Python库,凭借其基于Rust的强大性能、类似Pandas的易用性以及丰富的功能集,正逐渐成为数据科学界的新宠。
sosogod
这个作者很懒,什么都没留下…
展开
-
Polars简明基础教程六:什么是Polars的“DataFrame(数据框)_下”
我们可以将Polars DataFrame视为一个轻量级对象,它指向轻量级的Arrow表,该表又指向重量级的Arrow数组(重量级是因为它们持有实际数据)。在这个示例中,我们更改了第一行中的第一个值,我们可以看到对新的DataFrame的更改不会影响旧的DataFrame。Arrow的设计优化了对一维列的操作,而Numpy的设计优化了对多维数组的操作。这有助于减少数据传输过程中的开销。尽管新的和旧的DataFrame最初指向相同的Arrow表,但我们不需要担心对其中一个所做的更改会影响另一个。原创 2024-08-10 17:29:55 · 321 阅读 · 0 评论 -
Polars简明基础教程五:什么是Polars的“DataFrame(数据框)_上”
pl.Int32 与 pl.Float32 -> pl.Float64(遵循Numpy的约定,整数和浮点数组合时,转换为浮点数类型,并尽量扩展至更大的位宽)是 Polars 中的一种抽象类型,它能够表示一个 Series 中可能存在的多种具体类型。- 任何dtype 与 pl.Utf8 -> pl.Utf8(任何数据类型都可以转换为字符串类型,因此任何列都可以被转换为Utf8类型)- pl.Int64 与 pl.Boolean -> pl.Boolean(整数与布尔值的组合通常导致布尔值类型)原创 2024-08-10 16:34:13 · 385 阅读 · 0 评论 -
Polars简明基础教程四:懒惰模式 2:评估查询
在这篇博客文章中,我建议对于许多用例,打开流式模式可能是一个好的默认设置(这就是我在我的机器学习管道中所做的)默认情况下,当我们评估一个 “LazyFrame ”时,Polars 会将整个 “DataFrame ”加载到内存中。我们可能希望保存查询中的中间值。因此,我们在转换回惰性模式之前触发评估以创建一个可以保存的 DataFrame。在某些情况下,我们有一个 DataFrame 并希望将其转换为 LazyFrame。当我们触发评估时,我们将 LazyFrame 转换为 DataFrame。原创 2024-08-09 08:44:37 · 588 阅读 · 0 评论 -
Polars简明基础教程三:懒惰模式 1:引入懒惰模式(续)
在上面的SELECT块中,我们看到这些表达式是以__POLARS_CSER_X的形式调用的,其中均值表达式有一个代码,标准差表达式也有一个代码。我们可以看到,Polars已经识别出这些是在SELECT块中的三个表达式中相同的子表达式。在这里,我们会看到公共子表达式消除优化是如何工作的。通过公共子表达式消除,Polars识别出哪些相同的表达式被计算了多次,因此Polars会缓存第一次的输出以便重用。如果用户知道优化的存在、记得实现优化并且正确地实现了优化,大多数优化都可以通过用户在精心编写的查询中实现。原创 2024-08-09 08:03:44 · 453 阅读 · 0 评论 -
Polars简明基础教程二:懒惰模式 1:引入懒惰模式
Polars的开发人员所说的“昂贵”实际上是指到达架构需要一些计算,并且随着查询计划的增长,这种计算所需的时间也会增长。然而,当我们尝试获取LazyFrame的架构时,会得到一个警告,指出这可能是一个昂贵的操作,因为Polars需要遍历查询计划的逻辑来确定最终的列和数据类型会是什么。我们通过在一个LazyFrame上调用collect方法将LazyFrame转换为一个DataFrame——这会根据查询计划处理你的数据。LazyFrame实际上是一个查询计划——一个关于Polars如何转换你的数据的计划。原创 2024-08-08 09:21:51 · 681 阅读 · 0 评论 -
Polars简明基础教程一:Polars快速入门
在这个例子中,我们将添加一个列,其中包含每个舱位中乘客的最大年龄。在Python中(而不是特指Polars),当我们将代码包裹在括号中时,我们可以在新行上调用一个新方法——在这种情况下是select。在这里,我们看到一个使用表达式API的简单示例,其中我们在select语句中选择Pclass、Name和Age列(我们将在第3节中深入了解select语句)。表达式是一个函数,它接受一个Series(或DataFrame中的列)作为输入,并返回一个Series(或DataFrame中的列)。原创 2024-07-29 09:16:29 · 1080 阅读 · 0 评论