def test_mut_exclusive(): msg = "mutually exclusive arguments: '[ab]' and '[ab]'" with tm.assert_raises_regex(TypeError, msg): com._mut_exclusive(a=1, b=2) assert com._mut_exclusive(a=1, b=None) == 1 assert com._mut_exclusive(major=None, major_axis=None) is None assert com._mut_exclusive(a=None, b=2) == 2
def reindex(self, major=None, items=None, minor=None, major_axis=None, minor_axis=None, copy=False): """ Conform / reshape panel axis labels to new input labels Parameters ---------- major : array-like, default None items : array-like, default None minor : array-like, default None copy : boolean, default False Copy underlying SparseDataFrame objects Returns ------- reindexed : SparsePanel """ major = com._mut_exclusive(major=major, major_axis=major_axis) minor = com._mut_exclusive(minor=minor, minor_axis=minor_axis) if com._all_none(items, major, minor): raise ValueError('Must specify at least one axis') major = self.major_axis if major is None else major minor = self.minor_axis if minor is None else minor if items is not None: new_frames = {} for item in items: if item in self._frames: new_frames[item] = self._frames[item] else: raise NotImplementedError( 'Reindexing with new items not yet ' 'supported') else: new_frames = self._frames if copy: new_frames = dict( (k, v.copy()) for k, v in compat.iteritems(new_frames)) return SparsePanel(new_frames, items=items, major_axis=major, minor_axis=minor, default_fill_value=self.default_fill_value, default_kind=self.default_kind)
def reindex(self, major=None, items=None, minor=None, method=None, major_axis=None, minor_axis=None, copy=True): """ Conform panel to new axis or axes Parameters ---------- major : Index or sequence, default None Can also use 'major_axis' keyword items : Index or sequence, default None minor : Index or sequence, default None Can also use 'minor_axis' keyword method : {'backfill', 'bfill', 'pad', 'ffill', None}, default None Method to use for filling holes in reindexed Series pad / ffill: propagate last valid observation forward to next valid backfill / bfill: use NEXT valid observation to fill gap copy : boolean, default True Return a new object, even if the passed indexes are the same Returns ------- Panel (new object) """ result = self major = _mut_exclusive(major, major_axis) minor = _mut_exclusive(minor, minor_axis) if (method is None and not self._is_mixed_type and com._count_not_none(items, major, minor) == 3): return self._reindex_multi(items, major, minor) if major is not None: result = result._reindex_axis(major, method, 1, copy) if minor is not None: result = result._reindex_axis(minor, method, 2, copy) if items is not None: result = result._reindex_axis(items, method, 0, copy) if result is self and copy: raise ValueError('Must specify at least one axis') return result
def reindex(self, major=None, items=None, minor=None, major_axis=None, minor_axis=None, copy=False): """ Conform / reshape panel axis labels to new input labels Parameters ---------- major : array-like, default None items : array-like, default None minor : array-like, default None copy : boolean, default False Copy underlying SparseDataFrame objects Returns ------- reindexed : SparsePanel """ major = com._mut_exclusive(major, major_axis) minor = com._mut_exclusive(minor, minor_axis) if com._all_none(items, major, minor): raise ValueError('Must specify at least one axis') major = self.major_axis if major is None else major minor = self.minor_axis if minor is None else minor if items is not None: new_frames = {} for item in items: if item in self._frames: new_frames[item] = self._frames[item] else: raise NotImplementedError('Reindexing with new items not yet ' 'supported') else: new_frames = self._frames if copy: new_frames = dict((k, v.copy()) for k, v in compat.iteritems(new_frames)) return SparsePanel(new_frames, items=items, major_axis=major, minor_axis=minor, default_fill_value=self.default_fill_value, default_kind=self.default_kind)
def reindex(self, major=None, items=None, minor=None, method=None, major_axis=None, minor_axis=None): """ Conform panel to new axis or axes Parameters ---------- major : Index or sequence, default None Can also use 'major_axis' keyword items : Index or sequence, default None minor : Index or sequence, default None Can also use 'minor_axis' keyword method : {'backfill', 'bfill', 'pad', 'ffill', None}, default None Method to use for filling holes in reindexed Series pad / ffill: propagate last valid observation forward to next valid backfill / bfill: use NEXT valid observation to fill gap Returns ------- WidePanel (new object) """ result = self major = _mut_exclusive(major, major_axis) minor = _mut_exclusive(minor, minor_axis) if major is not None: result = result._reindex_axis(major, method, 1) if minor is not None: result = result._reindex_axis(minor, method, 2) if items is not None: result = result._reindex_axis(items, method, 0) if result is self: raise ValueError("Must specify at least one axis") return result