Как мне вызвать файл, импортированный через tkinter filedialog? - PullRequest
0 голосов
/ 03 июля 2019

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

Файл будет файлом Excel. Примером может быть:

col1 
a        
b
c

и мой текущий скрипт Python делает это:

df = read_excel('file.xlsx')
mapping = {'a':'apple','b':'banana','c':'carrot'}
df = df.replace({"col1":mapping}, regex=True)

и возвращается:

col1
apple
banana
carrot

но сейчас я пытаюсь создать графический интерфейс, который будет запускать его (:

Это код, который у меня есть (я получаю сообщение об ошибке ValueError: конструктор DataFrame неправильно вызван!):

import tkinter as tk
from tkinter import filedialog
import pandas as pd 
from datetime import datetime, date

def UploadAction(event=None):
    filename = filedialog.askopenfilename()

    print('Selected:', filename)

    df = pd.DataFrame(eval(data=filename))

    mmapping = {'a':'apple','b':'banana','c':'carrot'}

    df = df.replace({"col1":mapping}, regex=True)

    print(df['col1'])

root = tk.Tk()
button = tk.Button(root, text='Open', command=UploadAction)
button.pack()

root.mainloop()

Для экспорта в Excel, я знаю, код должен быть:

writer = pd.ExcelWriter("newfile.xlsx",
                        engine='xlsxwriter',
                        datetime_format='yyyymmdd',
                        date_format='yyyymmdd')

df.to_excel(writer, sheet_name = ('Sheet1'))

workbook  = writer.book
worksheet = writer.sheets['Sheet1']
worksheet.set_column('B:C', 20)
writer.save()

но я не уверен, как включить его в программу с графическим интерфейсом.

Так что бы вы предложили?

1 Ответ

0 голосов
/ 03 июля 2019

Вот и все:

= ^ .. ^ =

import pandas as pd
import tkinter as tk
from tkinter import filedialog


def open_file():
    # open file
    filename = filedialog.askopenfilename()
    # load data into data frame
    data = pd.read_csv(filename, sep=" ", header=None)

    return data


root = tk.Tk()
button = tk.Button(root, text='Open', command=open_file)
button.pack()

# do something with data
df_data = open_file()
df = df_data.drop(0, axis=1)

# save data to excel
df.to_excel("output.xlsx")

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