# GroupBy objects

## Dataset

| [`DatasetGroupBy`](../generated/xarray.core.groupby.DatasetGroupBy.html.md#xarray.core.groupby.DatasetGroupBy)(obj, groupers[, ...])                         |                                                                                                        |
|--------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------|
| [`DatasetGroupBy.map`](../generated/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.        |
| [`DatasetGroupBy.reduce`](../generated/xarray.core.groupby.DatasetGroupBy.reduce.html.md#xarray.core.groupby.DatasetGroupBy.reduce)(func[, dim, axis, ...])         | Reduce the items in this group by applying func along some dimension(s).                               |
| [`DatasetGroupBy.assign`](../generated/xarray.core.groupby.DatasetGroupBy.assign.html.md#xarray.core.groupby.DatasetGroupBy.assign)(\*\*kwargs)                     | Assign data variables by group.                                                                        |
| [`DatasetGroupBy.assign_coords`](../generated/xarray.core.groupby.DatasetGroupBy.assign_coords.html.md#xarray.core.groupby.DatasetGroupBy.assign_coords)([coords])         | Assign coordinates by group.                                                                           |
| [`DatasetGroupBy.first`](../generated/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                                       |
| [`DatasetGroupBy.last`](../generated/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                                        |
| [`DatasetGroupBy.fillna`](../generated/xarray.core.groupby.DatasetGroupBy.fillna.html.md#xarray.core.groupby.DatasetGroupBy.fillna)(value)                          | Fill missing values in this object by group.                                                           |
| [`DatasetGroupBy.quantile`](../generated/xarray.core.groupby.DatasetGroupBy.quantile.html.md#xarray.core.groupby.DatasetGroupBy.quantile)(q[, dim, method, ...])      | Compute the qth quantile over each array in the groups and concatenate them together into a new array. |
| [`DatasetGroupBy.where`](../generated/xarray.core.groupby.DatasetGroupBy.where.html.md#xarray.core.groupby.DatasetGroupBy.where)(cond[, other])                    | Return elements from self or other depending on cond.                                                  |
| [`DatasetGroupBy.all`](../generated/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).                                  |
| [`DatasetGroupBy.any`](../generated/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).                                  |
| [`DatasetGroupBy.count`](../generated/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).                                |
| [`DatasetGroupBy.cumsum`](../generated/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).        |
| [`DatasetGroupBy.cumprod`](../generated/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).   |
| [`DatasetGroupBy.max`](../generated/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).                  |
| [`DatasetGroupBy.mean`](../generated/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).                                 |
| [`DatasetGroupBy.median`](../generated/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).                               |
| [`DatasetGroupBy.min`](../generated/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).                  |
| [`DatasetGroupBy.prod`](../generated/xarray.core.groupby.DatasetGroupBy.prod.html.md#xarray.core.groupby.DatasetGroupBy.prod)([dim, skipna, ...])                 | Reduce this Dataset's data by applying `prod` (i.e., product) along some dimension(s).                 |
| [`DatasetGroupBy.std`](../generated/xarray.core.groupby.DatasetGroupBy.std.html.md#xarray.core.groupby.DatasetGroupBy.std)([dim, skipna, ddof, ...])             | Reduce this Dataset's data by applying `std` (i.e., standard deviation) along some dimension(s).       |
| [`DatasetGroupBy.sum`](../generated/xarray.core.groupby.DatasetGroupBy.sum.html.md#xarray.core.groupby.DatasetGroupBy.sum)([dim, skipna, min_count, ...])        | Reduce this Dataset's data by applying `sum` along some dimension(s).                                  |
| [`DatasetGroupBy.var`](../generated/xarray.core.groupby.DatasetGroupBy.var.html.md#xarray.core.groupby.DatasetGroupBy.var)([dim, skipna, ddof, ...])             | Reduce this Dataset's data by applying `var` (i.e., variance) along some dimension(s).                 |
| [`DatasetGroupBy.dims`](../generated/xarray.core.groupby.DatasetGroupBy.dims.html.md#xarray.core.groupby.DatasetGroupBy.dims)                                     |                                                                                                        |
| [`DatasetGroupBy.groups`](../generated/xarray.core.groupby.DatasetGroupBy.groups.html.md#xarray.core.groupby.DatasetGroupBy.groups)                                 | Mapping from group labels to indices.                                                                  |
| [`DatasetGroupBy.shuffle_to_chunks`](../generated/xarray.core.groupby.DatasetGroupBy.shuffle_to_chunks.html.md#xarray.core.groupby.DatasetGroupBy.shuffle_to_chunks)([chunks]) | Sort or "shuffle" the underlying object.                                                               |

## DataArray

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

## Grouper Objects

| [`groupers.BinGrouper`](../generated/xarray.groupers.BinGrouper.html.md#xarray.groupers.BinGrouper)(bins[, right, labels, ...])   | Grouper object for binning numeric data.               |
|-------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------|
| [`groupers.SeasonGrouper`](../generated/xarray.groupers.SeasonGrouper.html.md#xarray.groupers.SeasonGrouper)(seasons)                | Allows grouping using a custom definition of seasons.  |
| [`groupers.UniqueGrouper`](../generated/xarray.groupers.UniqueGrouper.html.md#xarray.groupers.UniqueGrouper)([labels])               | Grouper object for grouping by a categorical variable. |

## Resampler Objects

| [`groupers.SeasonResampler`](../generated/xarray.groupers.SeasonResampler.html.md#xarray.groupers.SeasonResampler)(seasons, \*[, ...])                | Allows grouping using a custom definition of seasons.         |
|----------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------|
| [`groupers.SeasonResampler.compute_chunks`](../generated/xarray.groupers.SeasonResampler.compute_chunks.html.md#xarray.groupers.SeasonResampler.compute_chunks)(...) | Compute chunk sizes for this season resampler.                |
| [`groupers.TimeResampler`](../generated/xarray.groupers.TimeResampler.html.md#xarray.groupers.TimeResampler)(freq[, closed, ...])                   | Grouper object specialized to resampling the time coordinate. |
| [`groupers.TimeResampler.compute_chunks`](../generated/xarray.groupers.TimeResampler.compute_chunks.html.md#xarray.groupers.TimeResampler.compute_chunks)(...)     | Compute chunk sizes for this time resampler.                  |
