Доступ к фрейму данных из одной функции в другую с помощью Tkinter Python Pandas - PullRequest
0 голосов
/ 10 апреля 2020

У меня есть скрипт, который использует Tkinter и pandas, а matplot разделен на 2 функции:

  • Первая функция: «getExcel» импортирует файл .csv и преобразует его во фрейм данных .
  • Вторая функция: "Calculate_plot" использует этот фрейм данных для выполнения некоторых вычислений и построения графика.

Проблема, с которой я сталкиваюсь: Я невозможно получить доступ к кадру данных из первой функции во вторую.

Код:

    global df
    import_file_path = filedialog.askopenfilename()
    data = pd.read_csv(import_file_path)
    lbl = tk.Label(text='File Uploaded ', bg='grey', fg='Black',
                               font=('helvetica', 10, 'bold'))
    lbl.place(relx=0.3, rely=0.35, relwidth=0.4, relheight=0.05)


browseButton_Excel = tk.Button(text='Import Excel File', command=getExcel, bg='green', fg='white',
                               font=('helvetica', 12, 'bold'))
canvas1.create_window(150, 100, window=browseButton_Excel)

second_frame = tk.Frame(root, bg='#808080', bd=5)
second_frame.place(relx=0.5, rely=0.48, relwidth=0.9, relheight=0.5, anchor='n')

label = tk.Label(second_frame, bg='light blue')
label.place(relx=0.005, rely=0.3, relwidth=0.99, relheight=0.65)

def Calculate_plot():
    df = pd.DataFrame(getExcel().data, columns=['Time', 'Current'])
    Current = df.loc[:, "Current"]
    Time = df.loc[:, "Time"]
    y = df.Current
    x = df.Time
    Charge = trapz(y, x)
    ch1 = float(Charge) / 5
    Cap = ch1 * 1000000

    plt.title('Inrush Current Plot')
    plt.plot(df.Time, df.Current)
    plt.xlabel('Time [Sec]')
    plt.ylabel('Current [A]')
    plt.legend()
    plt.show()

    resultLabel = tk.Label(root, text="The Capacitance is: ")
    resultLabel.pack(fill=Cap)


button = tk.Button(second_frame, text='Calculate Capacitance', command=Calculate_plot, bg='green', fg='white', font=('helvetica', 12, 'bold'))
button.place(relx=0.15, rely=0.05, relwidth=0.7, relheight=0.18) ```
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...