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

使用pandas处理匹配通配符的CSV时如何添加提取自文件名前缀的ID列

实现方法

核心提取逻辑非常简单:你的文件名结构为前缀 + 连续下划线 + 时间后缀.csv,直接按下划线分割取第一个元素即可得到所需ID,无需复杂正则,实现成本和运行效率都最优。

完整代码示例(os + glob 写法,兼容性最高)

import glob
import pandas as pd
import os

df_list = []
# 按需修改匹配路径规则
for file_path in glob.glob("./*.csv"):
    # 提取纯文件名,过滤路径前缀的影响
    file_name = os.path.basename(file_path)
    # 提取ID前缀
    file_id = file_name.split("_")[0]
    # 读取文件并新增ID列
    df = pd.read_csv(file_path)
    df["ID"] = file_id
    df_list.append(df)

# 合并所有DataFrame
merged_df = pd.concat(df_list, ignore_index=True)

简化写法(pathlib 写法,Python3.4+ 支持)

from pathlib import Path
import pandas as pd

df_list = []
# 按需修改匹配路径规则
for file_path in Path("./").glob("*.csv"):
    # stem属性直接返回不带后缀的文件名,分割后取前缀
    file_id = file_path.stem.split("_")[0]
    df = pd.read_csv(file_path)
    df["ID"] = file_id
    df_list.append(df)

merged_df = pd.concat(df_list, ignore_index=True)

特殊场景兼容

如果你的ID前缀本身可能包含单个下划线,仅和后续内容用两个以上连续下划线分隔,可以把分割规则修改为split("__")[0],就能避免前缀内的下划线干扰提取结果。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 16:36:02