MCPcopy Index your code
hub / github.com/pydata/xarray / __init__

Method __init__

xarray/core/groupby.py:639–697  ·  view source on GitHub ↗

Create a GroupBy object Parameters ---------- obj : Dataset or DataArray Object to group. grouper : Grouper Grouper object restore_coord_dims : bool, default: True If True, also restore the dimension order of multi-dimensio

(
        self,
        obj: T_Xarray,
        groupers: tuple[ResolvedGrouper, ...],
        restore_coord_dims: bool = True,
    )

Source from the content-addressed store, hash-verified

637 encoded: EncodedGroups
638
639 def __init__(
640 self,
641 obj: T_Xarray,
642 groupers: tuple[ResolvedGrouper, ...],
643 restore_coord_dims: bool = True,
644 ) -> None:
645 """Create a GroupBy object
646
647 Parameters
648 ----------
649 obj : Dataset or DataArray
650 Object to group.
651 grouper : Grouper
652 Grouper object
653 restore_coord_dims : bool, default: True
654 If True, also restore the dimension order of multi-dimensional
655 coordinates.
656 """
657 self._original_obj = obj
658 self._restore_coord_dims = restore_coord_dims
659 self.groupers = groupers
660
661 if len(groupers) == 1:
662 (grouper,) = groupers
663 self.encoded = grouper.encoded
664 else:
665 if any(
666 isinstance(obj._indexes.get(grouper.name, None), PandasMultiIndex)
667 for grouper in groupers
668 ):
669 raise NotImplementedError(
670 "Grouping by multiple variables, one of which "
671 "wraps a Pandas MultiIndex, is not supported yet."
672 )
673 self.encoded = ComposedGrouper(groupers).factorize()
674
675 # specification for the groupby operation
676 # TODO: handle obj having variables that are not present on any of the groupers
677 # simple broadcasting fails for ExtensionArrays.
678 codes = self.encoded.codes
679 self._by_chunked = is_chunked_array(codes._variable._data)
680 if not self._by_chunked:
681 (self.group1d, self._obj, self._stacked_dim, self._inserted_dims) = (
682 _ensure_1d(group=codes, obj=obj)
683 )
684 (self._group_dim,) = self.group1d.dims
685 else:
686 self.group1d = None
687 # This transpose preserves dim order behaviour
688 self._obj = obj.transpose(..., *codes.dims)
689 self._stacked_dim = None
690 self._inserted_dims = []
691 self._group_dim = None
692
693 # cached attributes
694 self._groups = None
695 self._dims = None
696 self._sizes = None

Callers

nothing calls this directly

Calls 6

is_chunked_arrayFunction · 0.90
ComposedGrouperClass · 0.85
_ensure_1dFunction · 0.85
getMethod · 0.45
factorizeMethod · 0.45
transposeMethod · 0.45

Tested by

no test coverage detected