Given either a column index or name return the column structure
        :param col: either index or name
        :return: column data structure

def column(self, col):
        """
        Given either a column index or name return the column structure
        :param col: either index or name
        :return: column data structure
        """
        if type(col) is str:
            for c in self._cols:
                if c.name == col:
                    return c
        else:
            return self._cols[col]