Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 2.7 使用按钮的Tkinter模块——输出数据帧上的查询结果_Python 2.7_Tkinter_Pandas - Fatal编程技术网

Python 2.7 使用按钮的Tkinter模块——输出数据帧上的查询结果

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

使用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.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()上方时,会得到“语法错误”。我不明白你的意思吗?你期望得到什么样的结果?打印报表?在小部件中显示?什么小部件?