Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.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 在tkinter中显示数据帧_Python_Pandas_Tkinter - Fatal编程技术网

Python 在tkinter中显示数据帧

Python 在tkinter中显示数据帧,python,pandas,tkinter,Python,Pandas,Tkinter,我正在创建一个tkinter gui,它将接受用户对变量的输入,然后将该变量传递给SQL和查询的数据(在本例中为单列数据框和箱线图)。但是,目前我找不到在tk gui中显示数据帧的方法。我还没有找到任何模块或方法来显示这一点,我花了几个小时来研究可能的解决方案,但都没有结果。我唯一需要的是数据帧显示在gui中,并在每次通过用户输入函数更改数据帧时重新呈现。我的代码是: ### Starting first GUI/Tkinter Script ##First load libs import

我正在创建一个tkinter gui,它将接受用户对变量的输入,然后将该变量传递给SQL和查询的数据(在本例中为单列数据框和箱线图)。但是,目前我找不到在tk gui中显示数据帧的方法。我还没有找到任何模块或方法来显示这一点,我花了几个小时来研究可能的解决方案,但都没有结果。我唯一需要的是数据帧显示在gui中,并在每次通过用户输入函数更改数据帧时重新呈现。我的代码是:

### Starting first GUI/Tkinter Script
##First load libs

import pyodbc
import numpy as np
import pandas.io.sql as sql
import pandas
import matplotlib.pyplot as plt
import pylab 
import matplotlib as mpl
from tkinter import *
import sys

plt.ion()

def userinput():
  global PartN, pp, df
  ##a = raw_input(v.get())
  a = E1.get()
  ##print a
  PartN = a
  conn = pyodbc.connect('DRIVER={SQL Server};SERVER=my server;
  DATABASE=PackingList;UID=myid;PWD=mypword') 
  sqlr = "SELECT partmadeperhour FROM Completions WHERE  PartNumber = ? 
  AND endtime > '2012-12-31 23:59:00' ORDER BY partmadeperhour"
  df = pandas.read_sql_query(sqlr, conn, params=[PartN])
  conn.close()
  print(df)


 stats = df['partmadeperhour'].describe()
  print(stats) 
  print("Part Name is %s" %PartN)
  ##df.plot(kind='box', fontsize='20')
  pp =  df.plot(kind='box', fontsize='20')
  plt.show(block=True)


def clear_textbox():
    E1.delete(0, END)

master = Tk()
master.title('Title')


v = StringVar()
PartN = None

L1 = Label(master, text = 'Name')
L1.pack(side = LEFT)

E1 = Entry(master, textvariable = v, bd = 5)
E1.pack(side = RIGHT)   

b = Button(master, text = 'Submit', command = userinput)
b.pack(side = TOP)

b2 = Button(master, text = 'Clear', command=clear_textbox)
b2.pack(side=BOTTOM)

master.mainloop()
我的数据帧示例

       rate
0      [0.25]
1      [0.67]
2      [0.93]
...       ...
1474   [5400.00]

如果有人能给我指出正确的方向,我甚至还不需要修改代码,我只需要听到有人说是的,这是可能的(我知道是的),并给我举一些例子。谢谢

我没有足够的代表发表评论,否则我会的,但我曾经掌握了与pandas/numpy/matplotlib和tkinter的互动。如果你坚持看完所有的视频,他最终会用它构建一个大型应用程序

即使你不可能做完全相同的事情,我认为仍然有一些有用的方法可以与你的数据和从视频中获得的GUI交互

如果链接失效,你可以在YouTube上搜索“Tkinter教程sentdex”


祝你好运。

谢谢,这看起来是个好的开始。现在我只是在一个文本框中显示数据框,它并不像我希望的那样好看。