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

如何使用Polars将文件名添加至新列,标识多文件读取的数据?

给Polars数据集添加文件名标识列

直接用scan_csv读取glob匹配的多文件不会自动带上来源文件名,得手动给每个文件单独加列再合并,给你改好的代码:

import polars as pl
from glob import glob
import os

# 获取所有符合格式的文件路径
file_paths = glob("data/file_*.tsv")

# 逐个文件生成带文件名列的懒加载DataFrame
lazy_dfs = [
    pl.scan_csv(path, separator="\t", has_header=False)
    # 可二选一:存完整路径或仅存文件名
    .with_columns(file_full_path=pl.lit(path))
    .with_columns(file_name=pl.lit(os.path.basename(path)))
    for path in file_paths
]

# 合并所有文件的数据,再取前500行
combined_data = pl.concat(lazy_dfs).fetch(n_rows=500)

关键点说明:

  • 先用glob拿到所有目标文件的路径,避免直接用scan_csv读多文件时无法区分数据来源
  • 对每个文件单独创建懒加载DataFrame,用pl.lit()将路径/文件名作为常量列插入
  • 最后用pl.concat合并所有数据集,再按需执行fetch或collect

如果不需要完整路径,只保留文件名的话,删掉file_full_path对应的代码行即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 09:33:11