def fromRecords(cls, data, major_field, minor_field, exclude=None): """ Create LongPanel from DataFrame or record / structured ndarray object Parameters ---------- data : DataFrame, structured or record array, or dict major_field : string minor_field : string Name of field exclude : list-like, default None Returns ------- LongPanel """ if isinstance(data, np.ndarray): # Dtype when you have data if not issubclass(data.dtype.type, np.void): raise ValueError('Input was not a structured array!') columns = data.dtype.names data = dict((k, data[k]) for k in columns) elif isinstance(data, DataFrame): data = data._series.copy() elif isinstance(data, dict): # otherwise will pop columns out of original data = data.copy() if exclude is None: exclude = set() else: exclude = set(exclude) for col in exclude: del data[col] major = Factor.fromarray(data.pop(major_field)) minor = Factor.fromarray(data.pop(minor_field)) index = MultiIndex(levels=[major.levels, minor.levels], labels=[major.labels, minor.labels]) return LongPanel(data, index=index)
def setUp(self): self.factor = Factor.fromarray(['a', 'b', 'b', 'a', 'a', 'c', 'c', 'c'])