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

如何读取目录下全部Excel文件到DataFrame并从文件名提取日期新增列

解决方案

你可以通过文件名处理模块截取固定位置的日期字符串,再转换为标准日期格式写入新增列,以下是修改后的可运行代码:

import pandas as pd
import glob
import os

all_data = []
for f in glob.glob('my directory/*.xlsx'):
    df = pd.read_excel(f)
    # 提取纯文件名(去除路径和后缀)
    pure_filename = os.path.splitext(os.path.basename(f))[0]
    # 截取末尾8位的日期字符串
    date_str = pure_filename.strip()[-8:]
    # 转换为日期格式,若你的日期为月/日/年格式,可将format改为'%m.%d.%y'
    df['date'] = pd.to_datetime(date_str, format='%d.%m.%y')
    all_data.append(df)

# 合并所有数据
all_data = pd.concat(all_data, ignore_index=True)

可选优化(适配非固定位置日期)

如果后续文件名规则调整,日期不在末尾,可使用正则表达式匹配日期格式,只需修改日期提取部分的代码即可:

import re
# 匹配文件名中所有xx.xx.xx格式的字符串,取第一个匹配结果
date_str = re.findall(r'\d{2}\.\d{2}\.\d{2}', pure_filename)[0]

说明

  • 原代码中循环调用DataFrame.append的方式在pandas新版本中已废弃,且执行效率低,改用列表暂存所有子数据最后一次性合并的方案性能提升明显
  • pd.to_datetime的format参数可根据你实际的日期规则调整,避免自动解析出现错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 00:15:02