# xarray.core.coordinates.DatasetCoordinates.assign

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

Assign new coordinates (and indexes) to a Coordinates object.

Return 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('10bce0d6-898d-478b-975e-3cbec74ad7ee','a2df3a27-ccc6-4337-80ee-8690f204e4f8','94ca172e-5d81-455b-aae8-1d73921b35b3','../lite/tree/../notebooks/index.html?path=76d79cb3_fd58_4053_b956_c02167f1b186.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="94ca172e-5d81-455b-aae8-1d73921b35b3" class="try_examples_outer_iframe  hidden"><div class="try_examples_button_container"><button class="try_examples_button" onclick="window.tryExamplesHideIframe('10bce0d6-898d-478b-975e-3cbec74ad7ee','94ca172e-5d81-455b-aae8-1d73921b35b3')">Go Back</button><button class="try_examples_button" onclick="window.openInNewTab('10bce0d6-898d-478b-975e-3cbec74ad7ee','94ca172e-5d81-455b-aae8-1d73921b35b3')">Open In Tab</button></div><div id="a2df3a27-ccc6-4337-80ee-8690f204e4f8" class="jupyterlite_sphinx_iframe_container"></div></div><script>document.addEventListener("DOMContentLoaded", function() {window.loadTryExamplesConfig("../try_examples.json");});</script>
