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

Pandas批量melt多XLS文件时如何新增filename列存储源文件名

代码修改实现方案

核心修改逻辑:单文件完成melt转换后,新增filename列标记数据来源,拼接后调整列顺序即可满足输出要求,无需改动原有读取、melt的核心逻辑。

修改后完整代码

import pandas as pd
import pathlib

data = []
for file_path in pathlib.Path.cwd().iterdir():
    if file_path.suffix.lower().startswith('.xls'):
        # 读取文件并执行长宽表转换
        melted_df = pd.read_excel(file_path).melt()
        # 新增来源文件列,直接取无后缀的文件名
        melted_df['filename'] = file_path.stem
        data.append(melted_df)
# 拼接后按要求调整列顺序
df = pd.concat(data, ignore_index=True)[['filename', 'variable', 'value']]

关键改动说明

  • 利用pathlib的stem属性直接获取不含后缀的文件名,无需手动写字符串切割逻辑,可自动适配.xls/.xlsx后缀、大小写差异的场景
  • 给每个单文件转换后的DataFrame追加filename列,保证每一行数据都能关联到对应的源文件
  • 拼接完成后通过列选择调整顺序,最终输出列顺序严格匹配filename/variable/value的要求,原有melt生成的variable、value字段取值完全不受影响

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 15:48:45