极地:read_parquet with how='diagonal'

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

有没有一种方法可以与 pl.concat 中的“how”参数执行相同的操作,但使用 read_parquet?

python python-polars
1个回答
0
投票

我认为你不能通过标准

read_parquet()
来做到这一点,但你可以连接从不同文件创建的数据帧:

import glob
import polars as pl

df_d1 = pl.DataFrame({"a": [1], "b": [3]})
df_d2 = pl.DataFrame({"a": [2], "c": [4]})

df_d1.write_parquet("df1.parquet")
df_d2.write_parquet("df2.parquet")

pl.concat(
    (pl.scan_parquet(f) for f in glob.glob("df*.parquet")),
    how="diagonal"
).collect()

┌─────┬──────┬──────┐
│ a   ┆ b    ┆ c    │
│ --- ┆ ---  ┆ ---  │
│ i64 ┆ i64  ┆ i64  │
╞═════╪══════╪══════╡
│ 1   ┆ 3    ┆ null │
│ 2   ┆ null ┆ 4    │
└─────┴──────┴──────┘
© www.soinside.com 2019 - 2024. All rights reserved.