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

Pandas批量读取Excel拆分文件名新增列值全为最后文件值问题求解

问题修复方案

错误原因

你在循环中每次完成文件数据追加后,直接对完整的总df的新增列做统一赋值,该操作会覆盖所有已存在行的对应列值,因此循环结束后所有行的新增列取值都会和最后一个文件的拆分结果一致。

修复后代码

import glob
import os
import pandas as pd

path = "C:/Users/User/blabla"
all_files = glob.glob(os.path.join(path, "*.xlsx")) 

df_list = []
for f in all_files:
    # 读取单文件数据
    data = pd.read_excel(f)
    # 拆分当前文件名得到对应字段
    file_name = os.path.splitext(os.path.basename(f))[0]
    nameList = file_name.rsplit('_')  
    # 仅给当前单文件的数据新增对应列
    data['Platform'] = nameList[1]
    data['First label']= nameList[2]
    data['Session'] = nameList[3]
    data['Language'] = nameList[4]
    data['Version'] = nameList[5]
    df_list.append(data)

# 一次性合并所有处理好的单文件数据,自动忽略旧索引
df = pd.concat(df_list, ignore_index=True)
df

优化说明

用列表暂存所有处理完成的单文件数据,最后一次性合并的方案,比循环中反复追加到总DataFrame的执行效率高很多,文件数量较多时性能差异会更明显。

内容的提问来源于stack exchange,提问作者Berk U.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 04:24:03