Saltar al contenido

Python / Pandas – GUI para ver un DataFrame o Matrix

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:

ingrese la descripción de la imagen aquí

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 DataFrameluego 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.

  1. Como han señalado otros, los IDE de Python como Spyder vienen con visores de tramas de datos.
  2. 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()

ingrese la descripción de la imagen aquí

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.

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

Eres capaz de añadir valor a nuestra información asistiendo con tu veteranía en las críticas.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *