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

如何在Python中通过Pandas读取文件时从文件名提取日期并新增列

解决方案:批量读取文件并提取文件名中的日期与前缀

这事儿用Pandas配合Python的文件操作模块就能轻松搞定,下面是完整的实现代码,我会一步步解释细节:

步骤1:导入所需库

首先得导入pandas和glob(用来匹配文件夹里的文件,比os.listdir更方便):

import pandas as pd
import glob

步骤2:批量处理文件并构建DataFrame

我们可以先获取所有目标txt文件的路径,然后逐个读取、处理,最后合并成一个大的DataFrame:

# 设置你的文件夹路径,比如 './data/'
folder_path = './your_folder_path/'
# 匹配所有txt文件
file_paths = glob.glob(folder_path + '*.txt')

# 初始化一个空列表,用来存储每个文件处理后的DataFrame
df_list = []

for file in file_paths:
    # 从文件路径中提取文件名(比如 'X_04_24_2018.txt')
    filename = file.split('/')[-1]  # 如果是Windows系统,换成 '\\'
    # 分割文件名,提取前缀和日期部分
    prefix, month, day, year = filename.split('_')
    # 去掉日期部分的.txt后缀
    year = year.replace('.txt', '')
    
    # 读取当前文件的2列数据
    df = pd.read_csv(file, header=None, names=['Col1', 'Col2'])
    
    # 添加Date列和File列
    # 格式化为你要的 '4/24/2018' 样式
    df['Date'] = f"{int(month)}/{int(day)}/{year}"
    df['File'] = prefix
    
    # 将处理后的DataFrame加入列表
    df_list.append(df)

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

# 查看结果
print(final_df)

关键细节说明

  • 文件名分割:用split('_')把文件名拆分成前缀、月、日、年四部分,再去掉年后面的.txt后缀。如果你的文件名格式有变化,这个分割逻辑可以灵活调整。
  • 日期格式:我把月份和日期转成整数后再拼接,这样就能得到4/24/2018而不是04/24/2018,如果需要保留前导零,直接用f"{month}/{day}/{year}"就行。
  • 读取文件:用pd.read_csv读取txt文件,因为是2列无表头数据,所以指定header=None和names=['Col1', 'Col2']来设置列名。
  • 合并DataFrame:用pd.concat把所有小DataFrame合并成一个,ignore_index=True用来重置行索引,避免索引重复。

如果你的文件是用其他分隔符(比如制表符)分隔的,可以给pd.read_csv加sep='\t'参数来适配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:54:10