Python 合并多个csv文件 (pandas)
只需要修改 文件夹路径、新文件的列名、需要合并的列的序号
import pandas as pd
import os
# 根据需要修改以下部分
path = os.path.abspath('G:\\贸易\\W_C') # 文件夹路径
filename_extenstion = '.csv' # 文件后缀
new_file_name = 'result.csv' # 合并后的文件名
cols_new_name = ['列名1', '列名2', '列名3', '列名4', '列名5', '列名6'] # 汇总后的列名,根据需要修改
cols_num = [1, 7, 8, 9, 11, 12] # 需要合并的列的索引,从0开始
# --------------------
# 读取所有文件名
file_allname = [] # 用于存储全部文件的名字
for filename in os.listdir(path):
if os.path.splitext(filename)[1] == filename_extenstion and filename != new_file_name: # 按.csv后缀匹配
t = os.path.splitext(filename)[0]
file_allname.append(t + filename_extenstion) # 拼接.csv后缀,生成完整文件名
df1 = pd.DataFrame(cols_new_name).T
try:
print('开始合并:')
df1.to_csv(path + '\\' + new_file_name, encoding='gbk', header=False, index=False)
for fn in file_allname:
a = pd.read_csv(path + '\\' + fn)
# a = pd.read_csv(path + '\\' + fn, low_memory=False)
print('合并' + fn)
aa = a.iloc[1:, cols_num] # 跳过标题行
aa.to_csv(path + '\\' + new_file_name, mode='a', encoding='gbk', header=False, index=False)
print('合并结束,生成新文件:' + new_file_name)
except PermissionError as e:
print('出现异常:' + str(type(e)) + '!\n文件已打开?请先关闭')