Создание графического интерфейса с помощью Tkinter для выбора CSV-файлов в коде панд - PullRequest
0 голосов
/ 29 марта 2019

Я пытаюсь использовать Tkinter для создания графического интерфейса пользователя, чтобы выбрать файлы .CSV, которые будут очищены в Pandas DF. Пользователь также выберет выходной путь и имя файла. Я скомпилировал следующий код, но остановился и не знаю, как на самом деле запустить выбранные файлы с помощью 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()

Цель здесь состоит в том, чтобы выбранные файлы .CSV, использующие browse_button(), были вводом для files, а выбранный путь file_save() - местом сохранения, видимым в df2.to_csv. Я хотел бы использовать run_button() для запуска скрипта pandas, но мой поиск не помог мне завершить это (я действительно новичок в pandas / tkinter и до недавнего времени не трогал python, так что извините за вопросы новичка ). Любая помощь приветствуется, как я уже сказал, я просто не знаю, как поступить или даже связать воедино оба сценария, и все, что я искал здесь, слишком развито для моих знаний. Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...