2016-07-18 2 views
0

Ich bin neu in Tkinter. Ich habe ein paar Widgets von Tkinter ausprobiert, finde aber keine geeignete Möglichkeit, einen Datenrahmen anzuzeigen.Python: Wie man einen Datenrahmen mit Tkinter anzeigen

Ich versuchte Tkinter.Text. Ich habe update() anstelle von mainloop() verwendet, weil ich df aktualisieren und wieder anzeigen möchte. mainloop() wird mein Programm blockieren. Das Problem mit diesem Ansatz ist, dass wenn die wird groß, es kann nicht vollständig angezeigt werden.

import pandas 
import numpy as np 
import Tkinter 

root = Tkinter.Tk() 
t1 = Tkinter.Text(root) 
t1.pack() 
df = pandas.DataFrame(np.random.randn(900,2),columns=list('AB')) 
t1.insert('end', df) 

root.update() 

Ich versuchte auch Tkinter.Lablel. Es fügt Einträge der df nacheinander ein, was sehr langsam ist.

from Tkinter import * 
for i in range(900): 
    for j in range(4): 
     l = Label(text='%d.%d' % (i, j), relief=RIDGE) 
     l.grid(row=i, column=j, sticky=NSEW) 
mainloop() 

Was ist der einfachste Weg, um einen Datenrahmen anzuzeigen (keine Bearbeitung erforderlich)? Um genau zu sein, sollte es mehr oder weniger wie ein Excel-Tabellenblatt mit Bildlaufleisten aussehen und erlauben, dass die angezeigte df aktualisiert und wieder angezeigt werden kann. Auch sollte es nicht zu lange dauern, wenn df Hunderte von Zeilen hat.

Vielen Dank.

+1

Willkommen bei SO. Obwohl Ihre Frage in Ordnung klingt, würde ich empfehlen, Ihre Bedürfnisse in der unteren Frage zusammenzufassen (das Wort "nett" ist zu vage). Freundliche Grüße. – YakovL

+0

@YakovL danke für den Rat. Ich fügte meine Bedürfnisse am Ende der Frage hinzu. – Pollyanna

+0

Sieht aus wie [this] (https://github.com/dmnfarrell/pandastable) genau das tut, was Sie wollen. – chthonicdaemon

Antwort

0

Ich fand pandas-qt einfach zu bedienen und das Display ist sehr schnell.

Es gibt einige alternative Lösungen here