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,
从Arrow表或数组创建DataFrame或Series。
此操作在大多数情况下将是零拷贝的。Polars 不支持的类型可能会被转换为最接近的支持类型。
- Parameters:
- data
pyarrow.Table,pyarrow.Array, one or morepyarrow.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
确保所有数据都在连续的内存中。
- data
- 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 ]