# xarray.core.groupby.DataArrayGroupBy

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

#### \_\_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.DataArrayGroupBy.__init__)(obj, groupers[, restore_coord_dims])                                               | Create a GroupBy object                                                                                |
|----------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------|
| [`all`](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).                                |
| [`any`](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).                                |
| [`apply`](xarray.core.groupby.DataArrayGroupBy.apply.html.md#xarray.core.groupby.DataArrayGroupBy.apply)(func[, shortcut, args])                    | Backward compatible implementation of `map`                                                            |
| [`assign_coords`](xarray.core.groupby.DataArrayGroupBy.assign_coords.html.md#xarray.core.groupby.DataArrayGroupBy.assign_coords)([coords])                  | Assign coordinates by group.                                                                           |
| [`count`](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).                              |
| [`cumprod`](xarray.core.groupby.DataArrayGroupBy.cumprod.html.md#xarray.core.groupby.DataArrayGroupBy.cumprod)([dim, skipna, keep_attrs])             | Reduce this DataArray's data by applying `cumprod` (i.e., cumulative product) along some dimension(s). |
| [`cumsum`](xarray.core.groupby.DataArrayGroupBy.cumsum.html.md#xarray.core.groupby.DataArrayGroupBy.cumsum)([dim, skipna, keep_attrs])               | Reduce this DataArray's data by applying `cumsum` (i.e., cumulative sum) along some dimension(s).      |
| [`fillna`](xarray.core.groupby.DataArrayGroupBy.fillna.html.md#xarray.core.groupby.DataArrayGroupBy.fillna)(value)                                   | Fill missing values in this object by group.                                                           |
| [`first`](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                                       |
| [`last`](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                                        |
| [`map`](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.            |
| [`max`](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).                |
| [`mean`](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).                               |
| [`median`](xarray.core.groupby.DataArrayGroupBy.median.html.md#xarray.core.groupby.DataArrayGroupBy.median)([dim, skipna, keep_attrs])               | Reduce this DataArray's data by applying `median` along some dimension(s).                             |
| [`min`](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).                |
| [`prod`](xarray.core.groupby.DataArrayGroupBy.prod.html.md#xarray.core.groupby.DataArrayGroupBy.prod)([dim, skipna, min_count, keep_attrs])        | Reduce this DataArray's data by applying `prod` (i.e., product) along some dimension(s).               |
| [`quantile`](xarray.core.groupby.DataArrayGroupBy.quantile.html.md#xarray.core.groupby.DataArrayGroupBy.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.DataArrayGroupBy.reduce.html.md#xarray.core.groupby.DataArrayGroupBy.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.DataArrayGroupBy.shuffle_to_chunks.html.md#xarray.core.groupby.DataArrayGroupBy.shuffle_to_chunks)([chunks])          | Sort or "shuffle" the underlying object.                                                               |
| [`std`](xarray.core.groupby.DataArrayGroupBy.std.html.md#xarray.core.groupby.DataArrayGroupBy.std)([dim, skipna, ddof, keep_attrs])               | Reduce this DataArray's data by applying `std` (i.e., standard deviation) along some dimension(s).     |
| [`sum`](xarray.core.groupby.DataArrayGroupBy.sum.html.md#xarray.core.groupby.DataArrayGroupBy.sum)([dim, skipna, min_count, keep_attrs])          | Reduce this DataArray's data by applying `sum` along some dimension(s).                                |
| [`var`](xarray.core.groupby.DataArrayGroupBy.var.html.md#xarray.core.groupby.DataArrayGroupBy.var)([dim, skipna, ddof, keep_attrs])               | Reduce this DataArray's data by applying `var` (i.e., variance) along some dimension(s).               |
| [`where`](xarray.core.groupby.DataArrayGroupBy.where.html.md#xarray.core.groupby.DataArrayGroupBy.where)(cond[, other])                             | Return elements from self or other depending on cond.                                                  |

### Attributes

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