Contamos con el hallazgo a esta problema, al menos eso esperamos. Si sigues con alguna inquietud coméntalo, para nosotros será un placer responderte
Solución:
Actualización 2019: Actualmente estoy trabajando en un tablo sucesor.
No estaba completamente satisfecho con algunas otras GUI, así que creé la mía, que ahora mantengo en Github. Ejemplo:
Además de la funcionalidad básica de tabla + gráfico, quería tener una forma específica de filtrar datos:
- seleccione una columna para filtrar desde un cuadro combinado
- escriba una “expresión de subrayado” para filtrar en esa columna usando código Python arbitrario. Por ejemplo:
_ > 0
para filtrar solo valores positivos, o expresiones más complejas como(_ >= date(2016, 1, 1)) & (_ <= date(2016, 1, 31))
por ejemplo, para columnas de fecha y hora.
yo suelo QTableWidget
de PyQt para mostrar un DataFrame
. creo un QTableWidgetObject
y luego rellenar con QTableWidgetItems
creado con DataFrame
valores. El siguiente es el fragmento de código que lee un archivo CSV, crea un DataFrame
luego mostrar en una GUI:
df = read_csv(filename, index_col = 0,header = 0)
self.datatable = QtGui.QTableWidget(parent=self)
self.datatable.setColumnCount(len(df.columns))
self.datatable.setRowCount(len(df.index))
for i in range(len(df.index)):
for j in range(len(df.columns)):
self.datatable.setItem(i,j,QtGui.QTableWidgetItem(str(df.iget_value(i, j))))
Actualizar:
Como esta respuesta era bastante antigua, merece una actualización. Hay muchas opciones disponibles ahora para ver los marcos de datos en la GUI.
- Como han señalado otros, los IDE de Python como Spyder vienen con visores de tramas de datos.
- qgrid es otra opción para el widget de cuaderno jupyter que representa los marcos de datos dentro del cuaderno.
Si alguien todavía quiere codificar una GUI simple para ver los marcos de datos dentro de Jupyter, el siguiente es el ejemplo mínimo completo usando Pyqt5.
%gui qt5
from PyQt5.QtWidgets import QWidget,QScrollArea, QTableWidget, QVBoxLayout,QTableWidgetItem
import pandas as pd
win = QWidget()
scroll = QScrollArea()
layout = QVBoxLayout()
table = QTableWidget()
scroll.setWidget(table)
layout.addWidget(table)
win.setLayout(layout)
df = pd.DataFrame("a" : [4 ,5, 6],"b" : [7, 8, 9],"c" : [10, 11, 12],index = [1, 2, 3])
table.setColumnCount(len(df.columns))
table.setRowCount(len(df.index))
for i in range(len(df.index)):
for j in range(len(df.columns)):
table.setItem(i,j,QTableWidgetItem(str(df.iloc[i, j])))
win.show()
La pregunta se publicó en 2012 y otras respuestas pueden ser demasiado antiguas para aplicar.
La respuesta en 2016 es que deberíamos usar Pycharm y se envía con DataFrame
espectador.
Eres capaz de añadir valor a nuestra información asistiendo con tu veteranía en las críticas.