def indexMap(self): "{label -> location}" if self._indexMap is None: self._indexMap = _tseries.map_indices_buf(self) self._verify_integrity() return self._indexMap
def _read_panel_table(self, group, where=None): from pandas.core.common import _asarray_tuplesafe table = getattr(group, 'table') # create the selection sel = Selection(table, where) sel.select() fields = table._v_attrs.fields columns = _maybe_convert(sel.values['column'], table._v_attrs.columns_kind) index = _maybe_convert(sel.values['index'], table._v_attrs.index_kind) # reconstruct long_index = MultiIndex.from_arrays([index, columns]) lp = LongPanel(sel.values['values'], index=long_index, columns=fields) if lp.consistent: lp = lp.sortlevel(level=0) wp = lp.to_wide() else: if not self._quiet: print ('Duplicate entries in table, taking most recently ' 'appended') # need a better algorithm tuple_index = long_index.get_tuple_index() index_map = _tseries.map_indices_buf(tuple_index) unique_tuples = _tseries.fast_unique(tuple_index) unique_tuples = _asarray_tuplesafe(unique_tuples) indexer, _ = _tseries.getMergeVec(unique_tuples, index_map) new_index = long_index.take(indexer) new_values = lp.values.take(indexer, axis=0) lp = LongPanel(new_values, index=new_index, columns=lp.columns) wp = lp.to_wide() if sel.column_filter: new_minor = sorted(set(wp.minor_axis) & sel.column_filter) wp = wp.reindex(minor=new_minor) return wp
def indexMap(self): if self._indexMap is None: self._indexMap = _tseries.map_indices_buf(self) self._verify_integrity() return self._indexMap