数据类型

Polars内部使用Arrow数据类型。Arrow数据类型是Apache Arrow项目中的一部分,它定义了一种跨平台的、语言无关的数据格式。这种数据格式可以在不同的系统和语言之间进行高效的数据交换,而无需进行数据序列化和反序列化。Arrow datatypes包括了许多常见的数据类型,如整数、浮点数、字符串、日期和时间等。还支持复杂数据结构String,Categorical, and Object。方法

类型
备注
数字类型Int88-bit signed integer.
数字类型Int1616-bit signed integer.
数字类型Int3232-bit signed integer.
数字类型Int6464-bit signed integer.
数字类型UInt88-bit unsigned integer.
数字类型UInt1616-bit unsigned integer.
数字类型UInt3232-bit unsigned integer.
数字类型UInt6464-bit unsigned integer.
数字类型Float3232-bit floating point.
数字类型Float6464-bit floating point.
嵌套类型Struct一个Struct类型类似于 Vec<Series>可以用于将多列数据封装在一列中.
嵌类型ListList类型底层是Arrow LargeList类型.
时间类型Date日期类型,底层用i32类型储存自1970年1月1日00:00:00 UTC1 开始的天数。日期范围大约是从公元前5877641年到公元5877641年。
时间类型Datetime(TimeUnit, Option<PlSmallStr>)日期时间类型。第一个参数为单位,第二个参数为时区。通常定义为Datetime(TimeUnit::Milliseconds,None);底层用i64类型储存自1970年1月1日00:00:00 UTC 的毫秒。时间范围大约是从约公元前292,469,238年到公元后292,473,178年。在实际应用中,使用i64类型来存储毫秒级的时间戳是完全足够的。
时间类型Duration(TimeUnit)储存时间差. Duration(TimeUnit::Milliseconds) 是Date/Datetime减法运算的返回类型。
时间类型Time时间类型,内部储存了自一天0点开始的纳秒。
其他Boolean布尔值,内部用bit存储。
其他String字符串类型,底层是LargeUtf8
其他Binary任意二进制数据.
其他ObjectA limited supported data type that can be any value.
其他Categorical分类变量。类似于R语言的因子化(factor)。crate feature dtype-categorical only

详细Arrow类型说明,参见:https://arrow.apache.org/docs/format/Columnar.html

1

这一天(1970年1月1日00:00:00 UTC)被称作UNIX元年(UNIX epoch)

Float32和Float64遵守IEEE 754标准,但有以下需要注意:

Polars要求**操作不能依赖于0或 NaN的正负性,也不能保证NaN 值的有效载荷。**这不仅限于算术运算。排序和分组操作前会将所有零规范化为+0,将所有NaN规范化为没有有效载荷的正NaN,以进行有效的等式检查:NaN和NaN比较被认为相等。NaN比所有非NaN大。

在IEEE 754浮点数标准中,0和NaN(非数字)是有符号的,这意味着存在+0和-0,正NaN和负NaN。正零和负零在数值上是相等的,但是在某些计算中,如除法或者函数的极限,正零和负零可能会有不同的行为。在IEEE浮点数标准中,NaN(非数字)的二进制表示,有一个"有效载荷"(payload)部分。他指的是除符号位和指数位之外的部分。这个部分可以存储额外的信息。例如,如果一个数学运算的结果是未定义的,那么可以在NaN的有效载荷中存储这个信息。然而,大多数情况下,这个有效载荷并没有被使用,所以在许多操作中,对NaN的有效载荷的处理并没有明确的规定。