直接创建结构体的方法?

问题描述 投票:0回答:1

我知道在构建系列时我可以使用字典作为元素间接创建一个 Polars 结构“标量”。但是有什么方法可以直接创建 Polars 结构标量吗? (不在系列或数据框中。)

出于我不清楚的原因,人们认为这个问题可能类似于 直接创建 `pyarrow.StructScalar` 的方法?.

不是,因为:

  • 虽然 Polars 在底层使用了 Arrow,但它仅提供将 Arrow 数组转换为 Polars Series、将 Arrow 表转换为 Polars DataFrame 的功能 --- 没有将 Arrow 标量转换为 Polars 标量的功能
  • 因为 Polars 在底层使用了 Arrow,在尝试回答“我们如何创建 Polars 标量?”这个问题时,我们可以忘记 Polars 使用 Arrow 的事实
  • 最后,请注意,虽然另一个问题有一个相对快速的解决方案,但
  • 这个问题没有
python python-polars
1个回答
0
投票
据我所知,这是不可能的。 Polars 数据类型用于输入 Polars 数据帧和系列的内容。您不能在数据结构和系列之外拥有极坐标数据类型的数据。特别是,

struct

列的内容将是常规字典。

考虑以下示例。我们创建一个带有单个

struct

"my_structs"
(带有字段 
"int_field"
"float_field"
)和单行数据的极坐标数据框。

import polars as pl df = pl.DataFrame({ "my_structs": {"int": 1, "float": 1.0} })
现在,如果我们选择 

struct

 列并获取它存储的单个项目,结果将是一个常规的 Python 字典。

df.get_column("my_structs").item()
{'int_field': 1, 'float_field': 1.0}
    
© www.soinside.com 2019 - 2024. All rights reserved.