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
相关产品推荐
相关产品推荐

