使用Tkinter创建GUI来选择熊猫代码中的CSV文件

时间:2019-03-29 20:42:20

标签: python pandas tkinter

我正在尝试使用Tkinter创建一个GUI,供用户选择将在Pandas DF中清除的.CSV文件。用户还将选择输出路径和文件名。我已经编译了以下代码,但已陷入停顿,并且不知道如何使用tkinter实际运行所选文件。

window = Tk()
def browse_button():
    global folder_path
    filename = tkFileDialog.askopenfilenames(parent=window,title='Select an Excel File',filetypes=[("Excel Files", ".xlsx; *.csv; *.xls")])
    window.tk.splitlist(filename)
    folder_path.set(filename)
    print(filename)
def file_save():
    global folder_path2
    savefilename = tkFileDialog.asksaveasfilename(defaultextension=".csv",parent=window,title='Select the Save Location',filetypes=[("Excel Files", ".xlsx; *.csv; *.xls")])
    folder_path2.set(savefilename)
    print(savefilename)
def run_button():
    global folder_path3

window.title("Excel Program")

Label(window, text="Insert CSV").grid(row=0)
Label(window, text="Save").grid(row=1)
e1 = Entry(window)
e2 = Entry(window)
e1.grid(row=0, column=1)
e2.grid(row=1, column=1)

folder_path = StringVar()
e1 = Label(master=window,textvariable=folder_path)
button2 = Button(text="Browse", command=browse_button)
button2.grid(row=0, column=3)

folder_path2 = StringVar()
e2 = Label(master=window,textvariable=folder_path2)
button3 = Button(text="Save Location", command=file_save)
button3.grid(row=1, column=3)

folder_path3 = StringVar()
e3 = Label(master=window,textvariable=folder_path3)
button4 = Button(text="Run", command=run_button)
button4.grid(row=3, column=3)


path = ("Original pandas code path goes here")
files = glob.glob(path + "/*.csv")
df = pd.concat([pd.read_csv(df) for df in files], axis=1, ignore_index=False)
pattern = r'Patterns go here'
match_idx = [i for i, e in enumerate(df.columns) if re.search(pattern, e)]
drop_cols = match_idx[3:]
usecols = [idx for idx, e in enumerate(df.columns) if idx not in drop_cols]
df1 = df.iloc[:, usecols]
df2 = df1.replace(['; ','_', regex=True)

df2.to_csv(r"save path goes here",header=False, index=False)

window.mainloop()

此处的目标是使用browse_button()作为files的输入的选定.CSV文件,并将file_save()选择的df2.to_csv路径作为{{1 }}。我想使用run_button()来运行pandas脚本,但是我的搜索并没有真正帮助我完成该操作(我对pandas / tkinter确实很陌生,直到最近几年都没有接触过python,所以很抱歉新手问题)。就像我说的那样,任何帮助都是值得赞赏的,我只是不知道如何继续进行工作,甚至不将这两个脚本结合在一起,而我在这里搜索的所有内容对于我的知识来说都太高级了。谢谢!

0 个答案:

没有答案