利用Pandas读取多个文件中相同列的数据并合并到新的表格中

import numpy as np
import pandas as pd
import xlrd
import glob
import os
from tqdm import tqdm
import time


def IndexChoice(File,IndexName,CloumsName):
    return File.loc[IndexName,CloumsName]

def dictint():  
    lable = pd.read_excel('Initialize.xlsx')
    dict_values = lable.set_index("标签").to_dict()["列"]
    return dict_values


if __name__ == "__main__":
    columns = []
    values  = []
    #读取文件
    input_path = input("请输入需要读取的文件路径:") #PASS/*.xls
    output_path = input("请输入文件导出路径和文件名:") #PASS3.xlsx
    all_file = glob.glob(input_path)
    
    #获取输入的标签索引和列值
    input_labels =  dictint()
    
    #循环字典获取列名
    for key in input_labels:
        columns.append(key)
        
    #获取数据
    for file in tqdm(all_file,desc='进行中'):#tqdm模块引入进度条
        values1 = []
        workbook = xlrd.open_workbook(file, logfile=open(os.devnull, "w")) #消除警告
        read_file = pd.read_excel(workbook,index_col=0) # read_excel accepts workbooks too
#         read_file = pd.read_excel(file,index_col=0)
        df = pd.DataFrame(read_file)
        for key in input_labels:
            values1.append(IndexChoice(df,key,input_labels[key]))
            #print(values1)
        values.append(values1) 
    
    # 保存到本地excel
    df = pd.DataFrame(values,columns=columns)
    df.to_excel(output_path, index=False)
    print('------------------------文件已生成------------------------')


    

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值