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

pandas合并CSV文件时新增列存储数据来源文件名的实现方法

实现方案

首先确保你已经导入了所需依赖库:

import glob
import pandas as pd
import os

修改后的完整代码如下:

extension = 'csv'
all_filenames = glob.glob(f'my_path/*.{extension}')
df_collection = []
for file_path in all_filenames:
    # 读取单个CSV文件
    current_df = pd.read_csv(file_path)
    # 新增File列,值为当前文件的纯文件名
    current_df['File'] = os.path.basename(file_path)
    df_collection.append(current_df)
# 合并所有文件
combined_csv = pd.concat(df_collection)
# 导出合并结果,注意要指定具体文件名,不能只写文件夹路径
combined_csv.to_csv("my_path/combined_all.csv", index=False)

如果你偏好更简洁的写法,可以用assign方法直接在列表推导式中完成列新增,代码可以简化为:

extension = 'csv'
all_filenames = glob.glob(f'my_path/*.{extension}')
combined_csv = pd.concat([pd.read_csv(f).assign(File=os.path.basename(f)) for f in all_filenames])
combined_csv.to_csv("my_path/combined_all.csv", index=False)

注意点

  • 如果不需要保留.csv后缀,只需要文件名主体,可以将os.path.basename(file_path)替换为os.path.splitext(os.path.basename(file_path))[0]
  • 你原代码中to_csv的参数只写了文件夹路径my_path,直接运行会触发报错,必须补充具体的导出文件名,如上文中的combined_all.csv

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 03:09:02