# xarray.core.coordinates.DataTreeCoordinates.assign

#### DataTreeCoordinates.assign(coords=None, \*\*coords_kwargs)[[source]](https://github.com/pydata/xarray/blob/main/xarray/core/coordinates.py#L664-L715)

Assign new coordinates (and indexes) to a Coordinates object, returning
a new object with all the original coordinates in addition to the new ones.

* **Parameters:**
  * **coords** ([mapping](https://docs.python.org/3/glossary.html#term-mapping) of `dim` to `coord`, *optional*) – A mapping whose keys are the names of the coordinates and values are the
    coordinates to assign. The mapping will generally be a dict or
    [`Coordinates`](xarray.Coordinates.html.md#xarray.Coordinates).
    * If a value is a standard data value — for example, a `DataArray`,
      scalar, or array — the data is simply assigned as a coordinate.
    * A coordinate can also be defined and attached to an existing dimension
      using a tuple with the first element the dimension name and the second
      element the values for this new coordinate.
  * **\*\*coords_kwargs** – The keyword arguments form of `coords`.
    One of `coords` or `coords_kwargs` must be provided.
* **Returns:**
  **new_coords** ([`Coordinates`](xarray.Coordinates.html.md#xarray.Coordinates)) – A new Coordinates object with the new coordinates (and indexes)
  in addition to all the existing coordinates.

### Examples

<div class="try_examples_button_container"><button class="try_examples_button" onclick="window.tryExamplesShowIframe('91af8138-5350-49b7-80fb-e18df4e825c2','3daf2781-e30f-4744-888d-6c92d66c23d4','b5bc4ae3-0acd-448c-868f-5478d633bebe','../lite/tree/../notebooks/index.html?path=b2119eb8_5e9f_4c11_bf8a_f970a8504810.ipynb','None')">Try it in your browser!</button></div>
```pycon
>>> coords = xr.Coordinates()
>>> coords
Coordinates:
    *empty*
```

```pycon
>>> coords.assign(x=[1, 2])
Coordinates:
  * x        (x) int64 16B 1 2
```

```pycon
>>> midx = pd.MultiIndex.from_product([["a", "b"], [0, 1]])
>>> coords.assign(xr.Coordinates.from_pandas_multiindex(midx, "y"))
Coordinates:
  * y          (y) object 32B MultiIndex
  * y_level_0  (y) object 32B 'a' 'a' 'b' 'b'
  * y_level_1  (y) int64 32B 0 1 0 1
```

<div id="b5bc4ae3-0acd-448c-868f-5478d633bebe" class="try_examples_outer_iframe  hidden"><div class="try_examples_button_container"><button class="try_examples_button" onclick="window.tryExamplesHideIframe('91af8138-5350-49b7-80fb-e18df4e825c2','b5bc4ae3-0acd-448c-868f-5478d633bebe')">Go Back</button><button class="try_examples_button" onclick="window.openInNewTab('91af8138-5350-49b7-80fb-e18df4e825c2','b5bc4ae3-0acd-448c-868f-5478d633bebe')">Open In Tab</button></div><div id="3daf2781-e30f-4744-888d-6c92d66c23d4" class="jupyterlite_sphinx_iframe_container"></div></div><script>document.addEventListener("DOMContentLoaded", function() {window.loadTryExamplesConfig("../try_examples.json");});</script>
