利用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('------------------------文件已生成------------------------')


    

你可能感兴趣的:(Pandas,大数据)