def METHOD_NAME(self):
    import pandas as pd
    columns = []
    for col, array in self._data.items():
        if col in self.column_types:
            columns.append({'name': col, 'type': self.column_types[col]})
            continue
        if not isinstance(array, np.ndarray):
            array = np.asarray(array)
        kind = array.dtype.kind
        if kind == 'M':
            columns.append({'name': col, 'type': 'datetime'})
        elif kind in 'uif':
            columns.append({'name': col, 'type': 'measure'})
        elif kind in 'bsU':
            columns.append({'name': col, 'type': 'dimension'})
        else:
            if len(array):
                value = array[0]
                if isinstance(value, dt.date):
                    columns.append({'name': col, 'type': 'datetime'})
                elif isdatetime(value) or isinstance(value, pd.Period):
                    columns.append({'name': col, 'type': 'datetime'})
                elif isinstance(value, str):
                    columns.append({'name': col, 'type': 'dimension'})
                elif isinstance(value, (float, np.float_, np.int_, int)):
                    columns.append({'name': col, 'type': 'measure'})
                else:
                    columns.append({'name': col, 'type': 'dimension'})
            else:
                columns.append({'name': col, 'type': 'dimension'})
    return columns