polars.from_arrow#

polars.from_arrow(
data: pa.Table | pa.Array | pa.ChunkedArray | pa.RecordBatch | Iterable[pa.RecordBatch | pa.Table],
schema: SchemaDefinition | None = None,
*,
schema_overrides: SchemaDict | None = None,
rechunk: bool = True,
) DataFrame | Series[source]#

从Arrow表或数组创建DataFrame或Series。

此操作在大多数情况下将是零拷贝的。Polars 不支持的类型可能会被转换为最接近的支持类型。

Parameters:
datapyarrow.Table, pyarrow.Array, one or more pyarrow.RecordBatch

表示Arrow表、数组或RecordBatches或Tables序列的数据。

schemaSequence of str, (str,DataType) pairs, or a {str:DataType,} dict

DataFrame的模式可以通过几种方式声明:

  • 作为一个{名称:类型}对的字典;如果类型为None,它将自动推断。

  • 作为列名的列表;在这种情况下,类型会自动推断。

  • 作为(名称,类型)对的列表;这等同于字典形式。

如果您提供的列名列表与基础数据中的名称不匹配,此处提供的名称将覆盖它们。模式中提供的名称数量应与基础数据的维度相匹配。

schema_overridesdict, default None

支持类型指定或覆盖一个或多个列;请注意,从schema参数推断出的任何dtypes将被覆盖。

rechunkbool, default True

确保所有数据都在连续的内存中。

Returns:
DataFrame or Series

示例

从Arrow表构建DataFrame:

>>> import pyarrow as pa
>>> data = pa.table({"a": [1, 2, 3], "b": [4, 5, 6]})
>>> pl.from_arrow(data)
shape: (3, 2)
┌─────┬─────┐
│ a   ┆ b   │
│ --- ┆ --- │
│ i64 ┆ i64 │
╞═════╪═════╡
│ 1   ┆ 4   │
│ 2   ┆ 5   │
│ 3   ┆ 6   │
└─────┴─────┘

从Arrow数组构建Series:

>>> import pyarrow as pa
>>> data = pa.array([1, 2, 3])
>>> pl.from_arrow(data, schema={"s": pl.Int32})
shape: (3,)
Series: 's' [i32]
[
    1
    2
    3
]