Source code for cgl.ui.widgets.containers.pandas_model
import pandas as pd
from PySide6.QtCore import QAbstractTableModel, Qt
[docs]
class PandasModel(QAbstractTableModel):
def __init__(self, df=pd.DataFrame(), parent=None):
QAbstractTableModel.__init__(self, parent=parent)
self._df = df.copy()
[docs]
def headerData(self, rowcol, orientation, role):
if orientation == Qt.Horizontal and role == Qt.DisplayRole:
return self._df.columns[rowcol]
if orientation == Qt.Vertical and role == Qt.DisplayRole:
return self._df.index[rowcol]
return None
[docs]
def data(self, index, role=Qt.DisplayRole):
if index.isValid():
if role == Qt.DisplayRole:
return str(self._df.values[index.row()][index.column()])
return None
[docs]
def rowCount(self, parent=None):
return len(self._df.index)
[docs]
def columnCount(self, parent=None):
return len(self._df.columns)