# xarray.core.coordinates.DatasetCoordinates.assign

#### DatasetCoordinates.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('f0c59c21-edc6-4f98-aef8-b5752d82a475','6b6de305-6649-430e-83d8-b5b3c8fd36ad','914ffa15-502c-44ad-8888-b80d58658221','../lite/tree/../notebooks/index.html?path=03fddaaa_171d_4785_96e0_368996051e54.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="914ffa15-502c-44ad-8888-b80d58658221" class="try_examples_outer_iframe  hidden"><div class="try_examples_button_container"><button class="try_examples_button" onclick="window.tryExamplesHideIframe('f0c59c21-edc6-4f98-aef8-b5752d82a475','914ffa15-502c-44ad-8888-b80d58658221')">Go Back</button><button class="try_examples_button" onclick="window.openInNewTab('f0c59c21-edc6-4f98-aef8-b5752d82a475','914ffa15-502c-44ad-8888-b80d58658221')">Open In Tab</button></div><div id="6b6de305-6649-430e-83d8-b5b3c8fd36ad" class="jupyterlite_sphinx_iframe_container"></div></div><script>document.addEventListener("DOMContentLoaded", function() {window.loadTryExamplesConfig("../try_examples.json");});</script>
