You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Polars:能否用read_parquet实现pl.concat的how='diagonal'功能?

在Polars中实现read_parquet结合diagonal拼接的效果

Polars的read_parquet方法本身并没有直接支持类似pl.concat(how='diagonal')的参数,但可以通过先逐个读取文件,再用diagonal方式拼接的方式实现相同效果。

具体步骤

  • 收集目标Parquet文件的路径列表
  • 逐个读取每个文件为独立的DataFrame
  • 使用pl.concat并指定how='diagonal'合并所有DataFrame

代码示例

import polars as pl
from glob import glob

# 获取指定目录下的所有Parquet文件
parquet_paths = glob("./data/*.parquet")

# 批量读取文件,生成DataFrame列表
df_collection = [pl.read_parquet(path) for path in parquet_paths]

# 以diagonal方式拼接所有DataFrame
final_df = pl.concat(df_collection, how="diagonal")

效果说明

how='diagonal'的拼接逻辑是:

  • 保留所有DataFrame中的列,重复列按顺序对齐,缺失的位置填充NaN
  • 行按读取顺序依次追加,每个DataFrame的行对应到各自列的有效位置,其他列补缺失值

内容的提问来源于stack exchange,提问作者Mac Fly

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 01:35:55