如何提取各CSV文件列名并合并至单个CSV文件?
解决方法
要实现提取指定文件夹中所有CSV文件的列名,并将列名与对应文件名合并为一个CSV文件的需求,可按以下修改后的代码操作:
import pandas as pd import os import glob2 # 指定目标文件夹路径 path = r'G:\serv_agr\Alberta_Billing\MM1077-NewHorizonMall\Meters\Gas_Wtr' csv_files = glob2.glob(os.path.join(path, "*.csv")) # 初始化列表存储所有文件的信息 all_file_records = [] # 遍历每个CSV文件 for f in csv_files: # 获取纯文件名 file_name = os.path.basename(f) # 仅读取表头(不加载整个文件,提升效率) df = pd.read_csv(f, nrows=0) columns = df.columns.tolist() # 构建包含文件名和带序号列名的字典 record = {'文件名': file_name} for idx, col in enumerate(columns, start=1): record[f'Column {idx}'] = col all_file_records.append(record) # 将收集到的数据转为DataFrame并导出为CSV result_df = pd.DataFrame(all_file_records) result_df.to_csv('列名汇总.csv', index=False, encoding='utf-8-sig') print("汇总文件已生成:列名汇总.csv")
关键改进说明
- 用
os.path.basename(f)替代手动分割路径,更简洁可靠地获取文件名 - 使用
pd.read_csv(f, nrows=0)仅读取表头行,避免加载大文件内容,节省内存和时间 - 为列名添加序号后缀(如
Column 1、Column 2),匹配你期望的输出格式 - 统一收集所有文件数据后再导出,确保最终CSV文件结构规整,不同列数的文件会自动填充空值
内容的提问来源于stack exchange,提问作者Russell Louis
相关产品推荐
相关产品推荐

