Pandas快速合并多个文件

python快速合并多个文件

Step1 导包导库

废话不多说直接上代码

import pandas as pd
import os
import glob
# 根据需要修改以下部分
path = os.path.abspath('../实验组/吴国就/')
csv_list = glob.glob('../实验组/吴国就/*Fix.csv')
new_file_name = 'data.csv'  # 合并后的文件名
cols_new_name = ['CountInTrial', 'PicID', 'PosX', 'PosY', 'StartTimestamp', 'Length', 'Distance', 'Orientation', 'Velocity', 'FeelLevel']  # 汇总后的列名,根据需要修改
cols_num = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]  # 需要合并的列的索引,从0开始
csv_list

Step2 名字划分

file_allname = []  # 用于存储全部文件的名字
for filename in csv_list:
    t=filename.split("\\")[1]
    file_allname.append(t)  # 拼接.csv后缀,生成完整文件名

Step3 合并文件

df = pd.DataFrame(cols_new_name).T
try:
    print('开始合并:')
    df.to_csv(path + '/' + new_file_name, encoding='gbk', header=False, index=False)
    for fn in file_allname:
        data = pd.read_csv(path + '/' + fn)
        print('合并' + fn)
        data = data.iloc[2:, cols_num]  # 跳过标题行
        data.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文件已打开?请先关闭')

结束 简单明了