Python 2.7 使用按钮的Tkinter模块——输出数据帧上的查询结果
使用Python Tkinter模块,我试图构建一个接受用户数据的应用程序;调用通过csv文件创建的数据帧上的函数;然后将结果输出到ap的屏幕框 这是我的尝试,我没有得到任何输出:Python 2.7 使用按钮的Tkinter模块——输出数据帧上的查询结果,python-2.7,tkinter,pandas,Python 2.7,Tkinter,Pandas,使用Python Tkinter模块,我试图构建一个接受用户数据的应用程序;调用通过csv文件创建的数据帧上的函数;然后将结果输出到ap的屏幕框 这是我的尝试,我没有得到任何输出: import pandas as pd import ttk def parsefile(*args): try: df=pd.read_csv("dataforcluster.csv") # do something to the data... df.ix[(df
import pandas as pd
import ttk
def parsefile(*args):
try:
df=pd.read_csv("dataforcluster.csv")
# do something to the data...
df.ix[(df.sp-x).abs().argsort()[:5]]
except ValueError:
pass
root = Tk()
root.title("Closest_5")
mainframe = ttk.Frame(root, padding="3 3 12 12")
mainframe.grid(column=0, row=0, sticky=(N, W, E, S))
mainframe.columnconfigure(0, weight=1)
mainframe.rowconfigure(0, weight=1)
sp_price_change = StringVar()
output = StringVar()
sp_price_change_entry = ttk.Entry(mainframe, width=7, textvariable=sp_price_change)
sp_price_change_entry.grid(column=2, row=1, sticky=(W, E))
ttk.Label(mainframe, textvariable=output).grid(column=2, row=2, sticky=(W, E))
ttk.Button(mainframe, text="Calculate", command=parsefile).grid(column=3, row=3, sticky=W)
ttk.Label(mainframe, text="sp_price_change").grid(column=3, row=1, sticky=W)
ttk.Label(mainframe, text="is equivalent to").grid(column=1, row=2, sticky=E)
ttk.Label(mainframe, text="output").grid(column=3, row=2, sticky=W)
for child in mainframe.winfo_children(): child.grid_configure(padx=5, pady=5)
sp_price_change_entry.focus()
root.bind('<Return>', calculate)
root.mainloop()
将熊猫作为pd导入
导入ttk
def解析文件(*args):
尝试:
df=pd.read\u csv(“dataforcluster.csv”)
#对数据做点什么。。。
df.ix[(df.sp-x).abs().argsort()[:5]]
除值错误外:
通过
root=Tk()
根标题(“最近的_5”)
mainframe=ttk.Frame(根,padding=“3 3 12”)
grid(列=0,行=0,粘性=(N,W,E,S))
mainframe.columnconfigure(0,权重=1)
mainframe.rowconfigure(0,权重=1)
sp_price_change=StringVar()
输出=StringVar()
sp_price_change_entry=ttk.entry(大型机,宽度=7,文本变量=sp_price_change)
sp\u price\u change\u entry.grid(列=2,行=1,粘性=(W,E))
标签(大型机,textvariable=output).grid(列=2,行=2,粘性=(W,E))
ttk.按钮(大型机,text=“Calculate”,command=parsefile).grid(列=3,行=3,粘性=W)
ttk.Label(mainframe,text=“sp_price_change”).grid(列=3,行=1,粘性=W)
ttk.Label(mainframe,text=“相当于”).grid(column=1,row=2,sticky=E)
ttk.Label(mainframe,text=“output”).grid(column=3,row=2,sticky=W)
对于mainframe.winfo_children():child.grid_配置(padx=5,pady=5)
sp_价格_变化_条目。焦点()
root.bind(“”,计算)
root.mainloop()
我的样本数据可以在这里获得:
提前感谢您的建议 你的问题遗漏了一些重要的细节。让我猜猜看 我的猜测是,您希望计算结果出现在带有字符串“output”的标签中,对吗 如果是这样,您需要做两件事:
ttk.label(大型机,textvariable=output1)
。请注意,我使用属性textvariable
而不是text
,并且我使用变量名而不是包含变量名的字符串。这将标签文本绑定到该变量的值;变量更改时,标签也会更改输出。设置(…)
,并用希望显示的结果替换…
。虽然我不知道哪个变量包含要显示的结果,但可能在某个地方有某个变量包含要显示的数据输出
变量输出小部件=标签(…)
。请注意,您不能在同一行上调用.grid(…)
,因为这会将输出\u小部件设置为无。通常,最好将小部件创建和小部件布局分开
configure
重新配置小部件,例如:输出小部件。configure(文本=结果)
(其中结果是包含结果的任何变量)
你的问题漏掉了一些重要的细节。让我猜猜看 我的猜测是,您希望计算结果出现在带有字符串“output”的标签中,对吗 如果是这样,您需要做两件事:
ttk.label(大型机,textvariable=output1)
。请注意,我使用属性textvariable
而不是text
,并且我使用变量名而不是包含变量名的字符串。这将标签文本绑定到该变量的值;变量更改时,标签也会更改输出。设置(…)
,并用希望显示的结果替换…
。虽然我不知道哪个变量包含要显示的结果,但可能在某个地方有某个变量包含要显示的数据输出
变量输出小部件=标签(…)
。请注意,您不能在同一行上调用.grid(…)
,因为这会将输出\u小部件设置为无。通常,最好将小部件创建和小部件布局分开
configure
重新配置小部件,例如:输出小部件。configure(文本=结果)
(其中结果是包含结果的任何变量)
你还没有发布你的计算函数。无论哪种方式,你都需要用输出结果的字符串形式更新你的“输出”变量。SUT()对不起,请考虑读“PARSEFILE”。(我就是这样编译的)。当我将您的建议添加到root.mainloop()上方时,会得到“语法错误”。我不明白你的意思吗?你期望得到什么样的结果?打印报表?在小部件中显示?什么小部件?你还没有发布你的计算功能。无论哪种方式,你都需要用输出结果的字符串形式更新你的“输出”变量。SUT()对不起,请考虑读“PARSEFILE”。(我就是这样编译的)。当我将您的建议添加到root.mainloop()上方时,会得到“语法错误”。我不明白你的意思吗?你期望得到什么样的结果?打印报表?在小部件中显示?什么小部件?