Python / Pandas - GUI for viewing a DataFrame or Matrix [closed] Python / Pandas - GUI for viewing a DataFrame or Matrix [closed] python python

Python / Pandas - GUI for viewing a DataFrame or Matrix [closed]


2019 update: I'm currently working on a successor tabloo.


I wasn't fully satisfied with some other GUIs, so I created my own, which I'm now maintaining on Github. Example:

enter image description here

Apart from the basic table + plot functionality, I wanted to have a specific way to filter data:

  • select a column to filter from a combo box
  • write an "underscore expression" to filter on that column using arbitrary Python code. For example: _ > 0 to filter positive values only, or more complex expressions like (_ >= date(2016, 1, 1)) & (_ <= date(2016, 1, 31)) e.g. for datetime columns.


I use QTableWidget from PyQt to display a DataFrame. I create a QTableWidgetObject and then populate with QTableWidgetItems created with DataFrame values.Following is the snippet of code that reads a CSV file ,create a DataFrame, then display in a 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))))

Update:

As this answer was quite old, it deserves an update. There are many options available now to view the dataframes in GUI.

  1. As others have pointed out, Python IDEs such as Spydercome with dataframe viewers.
  2. qgrid isanother option for the jupyter notebook widget that renders the dataframes within the notebook.

If someone still wants to code a simple GUI to view the dataframes within Jupyter, following is the complete , minimal example using Pyqt5 .

%gui qt5 from PyQt5.QtWidgets import QWidget,QScrollArea, QTableWidget, QVBoxLayout,QTableWidgetItemimport pandas as pdwin = 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()

enter image description here


The question was post in 2012 and other answers may be too old to apply.

The answer in 2016 is, we should use Pycharm and it's shipped with DataFrame viewer.

enter image description here

enter image description here