######################################################### ## @file : mtable.py ## @desc : pandas is to large, ## so i implement a simple table data structure ## by my self ## @create : 2020/06/25 ## @author : Chengan ## @email : douboer@gmail.com ######################################################### class mTable(): def __init__(self, data=[], index=[], columns=[]): self._data = data self._index = index self._columns = columns self._width = 10 def dataframe(self, data=[], index=[], columns=[]): self._data = data self._index = index self._columns = columns def get_iat(self, row: int, column: int): """ just like pandas iat""" return self._data[row][column] if len(self._data)>0 else None def get_num_rows(self): return len(self._data) if len(self._data)>0 else 0 def get_num_columns(self): return len(self._columns) if len(self._columns)>0 else 0 def reverse(self): self._data.reverse() def set_data(self, data=[]): """ get table content""" self._data = data def get_data(self): """ get table content""" return self._data def get_index(self): """ just like pandas index""" return self._index def get_columns(self): """ just like pandas columns""" return self._columns def set_repr_width(self, width): self._width = width def __repr__(self): """ print table """ w = self._width s = ''.ljust(w-1,' ') for c in self._columns: s += c.ljust(w,' ') s += '\n' len_index = len(self._index) for i, r in enumerate(self._data): s += self._index[i].ljust(w,' ') if i