polars.DataFrame.estimated_size#

DataFrame.estimated_size(unit: SizeUnit = 'b') int | float[source]#

返回DataFrame的总(堆)分配大小的估计值。

估计大小以指定单位给出(默认为字节)。

此估计是其缓冲区大小、有效性的总和,包括嵌套数组。多个数组可能共享缓冲区和位图。因此,两个数组的大小不是从此函数计算出的尺寸的总和。特别是,[StructArray]的大小是一个上限。

当数组被切片时,其分配的大小保持不变,因为缓冲区未改变。然而,此函数将返回一个较小的数字。这是因为此函数返回缓冲区的可见大小,而不是其总容量。

FFI缓冲区包含在此估计中。

Parameters:
unit{‘b’, ‘kb’, ‘mb’, ‘gb’, ‘tb’}

将返回的大小缩放到给定的单位。

示例

>>> df = pl.DataFrame(
...     {
...         "x": list(reversed(range(1_000_000))),
...         "y": [v / 1000 for v in range(1_000_000)],
...         "z": [str(v) for v in range(1_000_000)],
...     },
...     schema=[("x", pl.UInt32), ("y", pl.Float64), ("z", pl.String)],
... )
>>> df.estimated_size()
17888890
>>> df.estimated_size("mb")
17.0601749420166