# xarray.Dataset.map

`Dataset.``map`(func: Callable, keep_attrs: bool = None, args: Iterable[Any] = (), **kwargs) → xarray.core.dataset.Dataset

  Apply a function to each variable in this dataset

  Parameters:

  - func (callable) – Function which can be called in the form func(x, *args, **kwargs) to transform each DataArray x in this dataset into another DataArray.
  - keep_attrs (bool, optional) – If True, the dataset’s attributes (attrs) will be copied from the original object to the new one. If False, the new object will be returned without attributes.
  - args (tuple, optional) – Positional arguments passed on to func.
  - **kwargs (Any) – Keyword arguments passed on to func.

  Returns: | applied – Resulting dataset from applying `func` to each data variable.
  Return type: | Dataset

  Examples

      >>> da = xr.DataArray(np.random.randn(2, 3))
      >>> ds = xr.Dataset({'foo': da, 'bar': ('x', [-1, 2])})
      >>> ds
      <xarray.Dataset>
      Dimensions:  (dim_0: 2, dim_1: 3, x: 2)
      Dimensions without coordinates: dim_0, dim_1, x
      Data variables:
          foo      (dim_0, dim_1) float64 -0.3751 -1.951 -1.945 0.2948 0.711 -0.3948
          bar      (x) int64 -1 2
      >>> ds.map(np.fabs)
      <xarray.Dataset>
      Dimensions:  (dim_0: 2, dim_1: 3, x: 2)
      Dimensions without coordinates: dim_0, dim_1, x
      Data variables:
          foo      (dim_0, dim_1) float64 0.3751 1.951 1.945 0.2948 0.711 0.3948
          bar      (x) float64 1.0 2.0