Example #1
0
    def indexMap(self):
        "{label -> location}"
        if self._indexMap is None:
            self._indexMap = _tseries.map_indices_buf(self)
            self._verify_integrity()

        return self._indexMap
Example #2
0
    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
Example #3
0
    def indexMap(self):
        if self._indexMap is None:
            self._indexMap = _tseries.map_indices_buf(self)
            self._verify_integrity()

        return self._indexMap