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

读取多份CSV文件时如何将文件名中的日期时间部分追加到对应列名

你不需要在拼接后再修改列名,在读取单个CSV文件时就完成列名修改,能大幅提升效率,同时避免转置、硬编码行号等不稳定操作。

实现逻辑如下:

  1. 读取每个CSV时,从文件名提取出yyyy-mm-dd_hh-mm-ss格式的时间部分
  2. 直接将时间追加到当前DataFrame的列名后
  3. 拼接时移除ignore_index=True参数,保留已修改好的列名

完整优化代码:

import pandas as pd
import glob
import os

path = r'C:\Users\...' # 替换为你的实际路径
all_files = glob.glob(path + "/*.csv")

li = []

for filename in all_files:
    # 读取CSV
    df = pd.read_csv(filename, index_col=None, header=0)
    # 提取文件名中的时间部分
    base_name = os.path.basename(filename)
    datetime_part = '_'.join(base_name.split('_')[:2])
    # 修改当前DataFrame的列名,追加时间信息
    original_col = df.columns[0]
    df.columns = [f"{original_col}_{datetime_part}"]
    li.append(df)

# 拼接时不要加ignore_index=True,保留自定义列名
frame = pd.concat(li, axis=1)

补充说明:

  • 如果你不需要保留CSV原列名,直接用时间作为列名,把修改列名的代码改成df.columns = [datetime_part]即可
  • 该方案全程不需要转置操作,时间复杂度仅和读取CSV、拼接的原生效率一致,不会额外占用过多资源
  • 避免了硬编码行号的问题,不管CSV数据有多少行都能正常运行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 08:48:03