pandas-多文件合并

使用glob获取所有得excel文件,pandas读取文件,保存至同一个文件中

import glob
import os
import pandas as pd


class MergeExcel(object):
    def __init__(self, headers):
        # 需要提取的列名
        self.headers = headers
        # 创建一个数据空间用于存储数据
        self.datas = pd.DataFrame(columns=self.headers)

    def get_file_path(self, dir_path):
        # 递归获取所有excel文件
        file_paths = glob.glob(dir_path + '/' + '*.xls*', recursive=True)
        return file_paths

    def merge_excel(self, file_path):
        # 读取、合并文件
        data = pd.read_excel(file_path)
        self.datas = self.datas.append(data[self.headers])

    def run(self):
        # 获取当前文件夹名称
        dir_path = os.path.dirname(__file__)
        # dir_path = os.getcwd()

        # 获取当前文件夹下所有excel文件路径
        # dir_path = r'C:\Users\xiongrenyi\Desktop\zhiyuan'

        # 获取所有excel文件路径
        file_paths = self.get_file_path(dir_path)
        print(file_paths)

        # 遍历所有的excel文件路径
        for file_path in file_paths:
            self.merge_excel(file_path)
            print(file_path.split('\\')[-1], '已合并')

        # 保存
        self.datas.to_excel('new_file.xlsx', sheet_name='Sheet1', index=False, header=True)


if __name__ == '__main__':
    # 输入需要提取的列名
    heads = ['学号', '第一志愿']

    merge_excel = MergeExcel(heads)
    merge_excel.run()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值