У меня есть эти функции, которые предлагают пользователю загрузить файл csv через GUI (Tkinter) для выполнения основной c статистики и корреляционной матрицы. Выход сохраняется в рабочем каталоге. Я не хочу указывать каталог в коде, но пользователь сможет выбрать каталог по своему усмотрению. Я хочу изменить этот код, чтобы изменить каталог stati c и дать пользователю некоторую гибкость в выборе места для его сохранения. Пожалуйста помоги. Новое в python
import tkinter as tk
from tkinter import filedialog
import pandas as pd
from pandas import DataFrame
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans
import statsmodels.api as sm
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
root= tk.Tk()
canvas1 = tk.Canvas(root, width = 600, height = 500, relief = 'raised')
canvas1.pack()
label1 = tk.Label(root, text='EDA')
label1.config(font=('helvetica', 14))
canvas1.create_window(200, 25, window=label1)
label2 = tk.Label(root, text='Number of Clusters:')
label2.config(font=('helvetica', 8))
canvas1.create_window(200, 120, window=label2)
entry1 = tk.Entry (root)
canvas1.create_window(200, 140, window=entry1)
def getExcel ():
global df
import_file_path = filedialog.askopenfilename()
date_cols = ['TimeStamp']
df = pd.read_csv (import_file_path, parse_dates = date_cols, index_col = 'TimeStamp')
browseButtonExcel = tk.Button(text=" Import Excel File (CSV) ", command=getExcel, bg='green', fg='white', font=('helvetica', 10, 'bold'))
canvas1.create_window(200, 70, window=browseButtonExcel)
def descriptiv(): #def descriptiv(self, df, path, filename):
stats = df.describe([.01,.1,.9,.99]).T
stats['variance'] = df.var()
stats['pct missing'] = df.isna().mean().round(4) * 100
#folder_path = filedialog.askdirectory() # I want to be able to use this to prompt the user to select a directory to save the file
return stats.to_csv('C:/Users/chall/Desktop/work/descriptive.csv') # I want to change this so user can decide where to save the output
def correl():
matri = df.corr(method = 'pearson').to_csv('C:/Users/chall/Desktop/work/correlation.csv') #same problem here.
return matri
processButton2 = tk.Button(text=' Descriptive Statistics', command= descriptiv, bg='brown', fg='white', font=('helvetica', 10, 'bold'))
canvas1.create_window(200, 200, window=processButton2)
processButton3 = tk.Button(text=' Correlation Matrix', command= correl, bg='brown', fg='white', font=('helvetica', 10, 'bold'))
canvas1.create_window(200, 230, window=processButton3)
root.mainloop()