Python: как отобразить фрейм данных с помощью Tkinter

python tkinter

4191 просмотра

1 ответ

6 Репутация автора

Я новичок в Tkinter. Я пробовал несколько виджетов, предоставленных Tkinter, но не могу найти подходящий способ отображения кадра данных.

Я пытался Tkinter.Text. Я использовал update()вместо того, mainloop()потому что я хотел бы обновить dfи отобразить снова. mainloop()заблокирует мою программу. Проблема этого подхода заключается в том, что когда он dfстановится большим по размеру, он не может отображаться полностью.

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()

Я тоже попробовал Tkinter.Lablel. Он фактически вставляет записи dfпо одной, что очень медленно.

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()

Так какой же самый простой способ отобразить фрейм данных (не нужно редактировать)? Чтобы быть конкретным, он должен более или менее выглядеть как электронная таблица Excel со полосами прокрутки и позволять dfобновляться и отображаться снова. Кроме того, это не должно занять слишком много времени, если dfесть сотни строк.

Спасибо.

Автор: Pollyanna Источник Размещён: 18.07.2016 11:19

Ответы (1)


0 плюса

6 Репутация автора

Я обнаружил, что pandas-qt прост в использовании, а дисплей работает очень быстро.

Есть некоторые альтернативные решения здесь

Автор: Pollyanna Размещён: 20.07.2016 04:52
Вопросы из категории :
32x32