【问题标题】:Displaying Pandas dataframe in tkinter在 tkinter 中显示 Pandas 数据框
【发布时间】:2015-09-12 11:53:51
【问题描述】:

我正在创建一个 tkinter gui,它将接受用户输入的变量,然后将其传递给 SQL 和查询的数据(在本例中为单列数据框和箱线图)。但是,此时我找不到在 tk gui 中显示我的 pandas 数据框的方法。我还没有找到任何显示这个的模块或方法,而且我花了几个小时研究可能的解决方案,但无济于事。我唯一需要的是让数据框显示在 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]

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

【问题讨论】:

    标签: python pandas tkinter


    【解决方案1】:

    我没有足够的代表发表评论,否则我会,但我使用 this video 来掌握与 pandas/numpy/matplotlib 和 tkinter 的交互。如果您坚持观看所有视频,他最终会用它构建一个大型应用程序。

    即使您不太可能完全相同做同样的事情,我认为仍然有一些有用的方法可以与您的数据和从视频中闪烁的 GUI 进行交互。

    如果链接失效,您可以在 YouTube 上搜索“Tkinter tutorial sentdex”

    祝你好运。

    【讨论】:

    • 谢谢,这看起来是个不错的起点。现在我只是在一个文本框中显示数据框,这并不像我希望的那样漂亮。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-12-01
    • 1970-01-01
    • 2019-08-14
    • 1970-01-01
    • 2019-07-08
    • 1970-01-01
    • 2016-04-29
    相关资源
    最近更新 更多