我如何将输入框输入用作f(x)

时间:2020-03-29 17:19:31

标签: python-3.x pandas tkinter

l使应用程序使用pandas功能。我希望用户能够写下自己的函数以获取所需的内容。但是我无法找到合适的选择。我是代码的新手。那么如何将输入框输入转换为变量?红色圆圈为例。可能是用户写下来的任何内容,例如df_la ['RPM'] == 40否则

enter image description here

这是我的代码的一部分:

path = filedialog.askopenfilename(initialdir="D:\GIS\Python_Pro", title="Select a file", filetypes=(
        ("xlsx files", "*.xlsx"), ("xls files", "*.xlsx"), ("cvs files", "*.cvs"), ("All Files", "*.*")))
select_split = path.split("/")
excel_file = select_split[-1].split(".")
excel_name = excel_file[0]
df_la = pd.read_excel(path)
header_cols = list(df_la.columns)


def Where():
        a=df_la.where(e.get())
        print(a)
        lbl = Label(frm_btn, text="Where value of " + str() + " = " + str(a), bd=10, relief=SUNKEN,
                    bg="black", fg="white", font=("Ariel", "10", "bold"))
        lbl.grid(row=0, column=0, sticky="nsew", columnspan=24, rowspan=3, padx=10)


e=Entry(frm_btn,bd=2,relief=SUNKEN,fg="Blue",font=("Ariel","11","bold"),bg="light grey")
e.grid(row=5,column=3,sticky="nsew",columnspan=15,padx=5)

btn_where=Button(frm_btn,text="Search",bd=2,relief=FLAT,bg="Black",fg="White",font=("Ariel","10","bold"),command=Where)
btn_where.grid(row=6,column=0,sticky="nsew",padx=2,pady=2)

1 个答案:

答案 0 :(得分:0)

首先,感谢您的想法。我来自jizhihaoSAMA。这样调整就可以了。 exec()不返回任何值,但是eva()返回我想要的值。请在下面找到调整项。我会检查其他解决方案可能会更好。

def Where():
        c=eval('df_la.where({})'.format(e.get()))
        dfs=pd.DataFrame(c)
        print(dfs.notnull().sum())

        lbl = Label(frm_btn, text="Where value of " + str(c) + " = ", bd=10, relief=SUNKEN,
                    bg="black", fg="white", font=("Ariel", "10", "bold"))
        lbl.grid(row=0, column=0, sticky="nsew", columnspan=24, rowspan=3, padx=10)