# xarray.core.groupby.DatasetGroupBy

### *class* xarray.core.groupby.DatasetGroupBy(obj, groupers, restore_coord_dims=True)[[source]](https://github.com/pydata/xarray/blob/main/xarray/core/groupby.py#L2043-L2048)

#### \_\_init_\_(obj, groupers, restore_coord_dims=True)[[source]](https://github.com/pydata/xarray/blob/main/xarray/core/groupby.py#L639-L697)

Create a GroupBy object

* **Parameters:**
  * **obj** ([`Dataset`](xarray.Dataset.html.md#xarray.Dataset) or [`DataArray`](xarray.DataArray.html.md#xarray.DataArray)) – Object to group.
  * **grouper** ([`Grouper`](xarray.groupers.Grouper.html.md#xarray.groupers.Grouper)) – Grouper object
  * **restore_coord_dims** ([`bool`](https://docs.python.org/3/builtins/functions.html#bool), *default*: [`True`](https://docs.python.org/3/builtins/constants.html#True)) – If True, also restore the dimension order of multi-dimensional
    coordinates.

### Methods

| [`__init__`](#xarray.core.groupby.DatasetGroupBy.__init__)(obj, groupers[, restore_coord_dims])                                             | Create a GroupBy object                                                                                |
|--------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------|
| [`all`](xarray.core.groupby.DatasetGroupBy.all.html.md#xarray.core.groupby.DatasetGroupBy.all)([dim, keep_attrs])                             | Reduce this Dataset's data by applying `all` along some dimension(s).                                  |
| [`any`](xarray.core.groupby.DatasetGroupBy.any.html.md#xarray.core.groupby.DatasetGroupBy.any)([dim, keep_attrs])                             | Reduce this Dataset's data by applying `any` along some dimension(s).                                  |
| [`apply`](xarray.core.groupby.DatasetGroupBy.apply.html.md#xarray.core.groupby.DatasetGroupBy.apply)(func[, args, shortcut])                    | Backward compatible implementation of `map`                                                            |
| [`assign`](xarray.core.groupby.DatasetGroupBy.assign.html.md#xarray.core.groupby.DatasetGroupBy.assign)(\*\*kwargs)                              | Assign data variables by group.                                                                        |
| [`assign_coords`](xarray.core.groupby.DatasetGroupBy.assign_coords.html.md#xarray.core.groupby.DatasetGroupBy.assign_coords)([coords])                  | Assign coordinates by group.                                                                           |
| [`count`](xarray.core.groupby.DatasetGroupBy.count.html.md#xarray.core.groupby.DatasetGroupBy.count)([dim, keep_attrs])                         | Reduce this Dataset's data by applying `count` along some dimension(s).                                |
| [`cumprod`](xarray.core.groupby.DatasetGroupBy.cumprod.html.md#xarray.core.groupby.DatasetGroupBy.cumprod)([dim, skipna, keep_attrs])             | Reduce this Dataset's data by applying `cumprod` (i.e., cumulative product) along some dimension(s).   |
| [`cumsum`](xarray.core.groupby.DatasetGroupBy.cumsum.html.md#xarray.core.groupby.DatasetGroupBy.cumsum)([dim, skipna, keep_attrs])               | Reduce this Dataset's data by applying `cumsum` (i.e., cumulative sum) along some dimension(s).        |
| [`fillna`](xarray.core.groupby.DatasetGroupBy.fillna.html.md#xarray.core.groupby.DatasetGroupBy.fillna)(value)                                   | Fill missing values in this object by group.                                                           |
| [`first`](xarray.core.groupby.DatasetGroupBy.first.html.md#xarray.core.groupby.DatasetGroupBy.first)([skipna, keep_attrs])                      | Return the first element of each group along the group dimension                                       |
| [`last`](xarray.core.groupby.DatasetGroupBy.last.html.md#xarray.core.groupby.DatasetGroupBy.last)([skipna, keep_attrs])                        | Return the last element of each group along the group dimension                                        |
| [`map`](xarray.core.groupby.DatasetGroupBy.map.html.md#xarray.core.groupby.DatasetGroupBy.map)(func[, args, shortcut])                        | Apply a function to each Dataset in the group and concatenate them together into a new Dataset.        |
| [`max`](xarray.core.groupby.DatasetGroupBy.max.html.md#xarray.core.groupby.DatasetGroupBy.max)([dim, skipna, keep_attrs])                     | Reduce this Dataset's data by applying `max` (i.e., maximum) along some dimension(s).                  |
| [`mean`](xarray.core.groupby.DatasetGroupBy.mean.html.md#xarray.core.groupby.DatasetGroupBy.mean)([dim, skipna, keep_attrs])                   | Reduce this Dataset's data by applying `mean` along some dimension(s).                                 |
| [`median`](xarray.core.groupby.DatasetGroupBy.median.html.md#xarray.core.groupby.DatasetGroupBy.median)([dim, skipna, keep_attrs])               | Reduce this Dataset's data by applying `median` along some dimension(s).                               |
| [`min`](xarray.core.groupby.DatasetGroupBy.min.html.md#xarray.core.groupby.DatasetGroupBy.min)([dim, skipna, keep_attrs])                     | Reduce this Dataset's data by applying `min` (i.e., minimum) along some dimension(s).                  |
| [`prod`](xarray.core.groupby.DatasetGroupBy.prod.html.md#xarray.core.groupby.DatasetGroupBy.prod)([dim, skipna, min_count, keep_attrs])        | Reduce this Dataset's data by applying `prod` (i.e., product) along some dimension(s).                 |
| [`quantile`](xarray.core.groupby.DatasetGroupBy.quantile.html.md#xarray.core.groupby.DatasetGroupBy.quantile)(q[, dim, method, keep_attrs, ...])   | Compute the qth quantile over each array in the groups and concatenate them together into a new array. |
| [`reduce`](xarray.core.groupby.DatasetGroupBy.reduce.html.md#xarray.core.groupby.DatasetGroupBy.reduce)(func[, dim, axis, keep_attrs, shortcut]) | Reduce the items in this group by applying func along some dimension(s).                               |
| [`shuffle_to_chunks`](xarray.core.groupby.DatasetGroupBy.shuffle_to_chunks.html.md#xarray.core.groupby.DatasetGroupBy.shuffle_to_chunks)([chunks])          | Sort or "shuffle" the underlying object.                                                               |
| [`std`](xarray.core.groupby.DatasetGroupBy.std.html.md#xarray.core.groupby.DatasetGroupBy.std)([dim, skipna, ddof, keep_attrs])               | Reduce this Dataset's data by applying `std` (i.e., standard deviation) along some dimension(s).       |
| [`sum`](xarray.core.groupby.DatasetGroupBy.sum.html.md#xarray.core.groupby.DatasetGroupBy.sum)([dim, skipna, min_count, keep_attrs])          | Reduce this Dataset's data by applying `sum` along some dimension(s).                                  |
| [`var`](xarray.core.groupby.DatasetGroupBy.var.html.md#xarray.core.groupby.DatasetGroupBy.var)([dim, skipna, ddof, keep_attrs])               | Reduce this Dataset's data by applying `var` (i.e., variance) along some dimension(s).                 |
| [`where`](xarray.core.groupby.DatasetGroupBy.where.html.md#xarray.core.groupby.DatasetGroupBy.where)(cond[, other])                             | Return elements from self or other depending on cond.                                                  |

### Attributes

| [`dims`](xarray.core.groupby.DatasetGroupBy.dims.html.md#xarray.core.groupby.DatasetGroupBy.dims)     |                                                  |
|---------------------------------------------------------------------------------------------------|--------------------------------------------------|
| `encoded`                                                                                         |                                                  |
| `group1d`                                                                                         |                                                  |
| `groupers`                                                                                        |                                                  |
| [`groups`](xarray.core.groupby.DatasetGroupBy.groups.html.md#xarray.core.groupby.DatasetGroupBy.groups) | Mapping from group labels to indices.            |
| `sizes`                                                                                           | Ordered mapping from dimension names to lengths. |
