Python合并多个CSV文件时如何为每行添加对应源文件名?
你只需要在读取每个CSV文件的同时,给每个DataFrame新增一列存储当前源文件名即可,修改后的代码如下:
import os import glob import pandas as pd os.chdir("../Stok list") extension = 'csv' all_filenames = [i for i in glob.glob('*.{}'.format(extension))] # 读取每个csv的时候新增source_file列存储源文件名 combined_csv = pd.concat([pd.read_csv(f).assign(source_file=f) for f in all_filenames ]) combined_csv.to_csv( "../combined_csv.csv", index=False, encoding='utf-8-sig')
补充说明:
- 新增的列名你可以根据自己的需求修改,把
source_file替换成你想要的字段名即可 - 如果不需要保留文件名的后缀,你可以把
assign(source_file=f)改成assign(source_file=os.path.splitext(f)[0]),就会自动去掉.csv后缀
内容的提问来源于stack exchange,提问作者Tman
相关产品推荐
相关产品推荐

