从多个Excel文件创buildpandas数据框

嗨所以这个问题几乎和这个一样:

从多个文件创buildpandas数据框

除了我想从Excel文件的列表中读取数据。 我有一个名为“文件名”的文件名列表,我想合并成一个单一的数据框。

我的代码是:

import tkinter as tk import pandas as pd import tkinter.messagebox as tr from tkinter.filedialog import askopenfilename LARGE_FONT = ("Verdana", 12) class BlahTest(tk.Tk): def __init__(self, *args, **kwargs): tk.Tk.__init__(self, *args, **kwargs) container = tk.Frame(self) container.pack(side="top", fill="both", expand=True) container.grid_rowconfigure(0, weight=1) container.grid_columnconfigure(0, weight=1) self.frames = {} frame = StartPage(container, self) self.frames[StartPage] = frame frame.grid(row=0, column=0, sticky="nsew") self.show_frame(StartPage) def show_frame(self, cont): frame = self.frames[cont] frame.tkraise() class StartPage(tk.Frame): def __init__(self, parent, controller): tk.Frame.__init__(self,parent) label = tk.Label(self, text="Add files to start compiling your report", font=LARGE_FONT) label.pack(pady=10,padx=10) button1 = tk.Button(self, text="Add Files", command=FileOperations.openFile) button1.pack() class FileOperations(): def openFile(): options = {} options['initialdir'] = 'C:\\Users\\Blah' options['filetypes'] = [('Excel files', '.xlsx')] options['multiple'] = 1 global filenames filenames = tk.filedialog.askopenfilename(**options) if len(filenames) == 8: #checks if the user has selected exactly 8 files else shows errormessage PandasOperations.MergetoSingleDF else: tr.showerror("Wrong number of files","There should be exactly 8 files") class PandasOperations(): def MergetoSingleDF(): df_list = [pd.read_excel((file), sheetname=0) for file in filenames] big_df = pd.Dataframe() big_df = pd.concat(df_list) big_df writer = pd.ExcelWriter('C:\\Users\\Blah.xlsx', engine = 'xlsxwriter') big_df.to_excel(writer, sheet_name='Patch Summary by Server Report', index=False) workbook = writer.book worksheet = writer.sheets['Patch Summary by Server Report'] writer.save() app = BlahTest() app.mainloop() 

我的代码应该: – 获取8个Excel文件的列表 – 将每个Excel文件加载到相应的数据框中,并将这些数据框存储在新列表中 – 将整个数据框列表合并到一个数据框中 – 打印出新的大数据框 – 保存新的大数据框到Excel文件

对不起,它不给我任何错误信息 – 它似乎并没有打印datafrane或保存到Excel。

任何帮助将受到感谢

你是不是要说PandasOperations()。MergetoSingleDF()而不是PandasOperations.MergetoSingleDF,就像你现在写的那样? 此外,您的类成员函数,如def MergeToSingleDF()应接受自我作为第一个参数。